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