ホームページ > データベース > mysql チュートリアル > MySQL ビューは動的データ フィルタリングのパラメータを受け入れることができますか?

MySQL ビューは動的データ フィルタリングのパラメータを受け入れることができますか?

Linda Hamilton
リリース: 2024-12-05 10:39:15
オリジナル
457 人が閲覧しました

Can MySQL Views Accept Parameters for Dynamic Data Filtering?

パラメータを MySQL ビューに組み込むことはできますか?

最初のクエリはパラメータを使用してビューを作成しようとしますが、MySQL はこれを禁止しています。提示された回避策には、パラメーター値を取得する関数を作成し、それをビューの定義に組み込むことが含まれます。ただし、このアプローチは、その複雑さと洗練さに欠けているため、満足のいくものではないと考えられています。

主な目標は、パラメーターを直接利用できるビューを作成し、データのグループ化とフィルター処理を容易にすることです。 MergedDenialsViewHelper ビューと MergedDenials ビューを考えてみましょう。定義された時間枠内で特定のユーザーおよび機能に対する拒否を表示するには、パラメーターを使用します。

SET @DenialMergingTime := 5;
SELECT GroupTime, FeatureId, UserHostId, MultiplicitySum FROM MergedDenials WHERE UserHostId IN (1, 2) AND FeatureId IN (3, 4);
ログイン後にコピー

この方法は効果的ですが、複雑な性質があるため問題があります。代替アプローチとして、目的のパラメータ値を返す関数を作成するという方法があります。

create function p1() returns INTEGER DETERMINISTIC NO SQL return @p1;
ログイン後にコピー

その後、関数を組み込んだビューを作成できます。

create view h_parm as
select * from sw_hardware_big where unit_id = p1() ;
ログイン後にコピー

このビューを配置した状態で、パラメータを直接利用できます:

select s.* from (select @p1:=12 p) parm , h_parm s;
ログイン後にコピー

このソリューションでは、以前の回避策が不要になり、プロセス全体が簡素化され、コードの読みやすさを向上させます。

以上がMySQL ビューは動的データ フィルタリングのパラメータを受け入れることができますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート