首頁 >資料庫 >mysql教程 >MySQL視圖可以接受參數進行動態資料過濾嗎?

MySQL視圖可以接受參數進行動態資料過濾嗎?

Linda Hamilton
Linda Hamilton原創
2024-12-05 10:39:15439瀏覽

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn