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

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

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-05 10:39:15459ブラウズ

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。