[英]Having Issue with MySQL Stored Procedure
在下面的過程中我有兩個參數 - 當我運行時應該填充兩個參數。 我希望這些參數是可選的,如果我填充第一個數據應該基於一個參數進行過濾,如果我填充secand一個並且保留null第一個數據應該基於secand參數進行過濾,如果我傳遞了兩個參數它應該基於過濾器兩個參數,如果我沒有傳遞參數,它不應該被過濾。
DROP PROCEDURE IF EXISTS medatabase.SP_rptProvince2;
CREATE PROCEDURE medatabase.`SP_rptProvince2`(
IN e_Region VARCHAR(500),
IN e_Province VARCHAR(500)
)
BEGIN
DECLARE strQuery VARCHAR(1024);
DECLARE stmtp VARCHAR(1024);
SET @strQuery = CONCAT('SELECT * FROM alldata where 1=1 ');
-- IF e_region IS NOT NULL THEN
-- SET @strQuery = CONCAT(@strQuery, 'AND regionName'=e_Region);
-- END IF;
IF e_Region IS NOT NULL THEN
SET @strQuery = CONCAT(@strQuery, ' AND regionName = "',e_Region,'"');
IF e_Province IS NOT NULL THEN
SET @strQuery = CONCAT(@strQuery, ' AND provinceName = "',e_Province,'"');
END IF;
END IF;
PREPARE stmtp FROM @strQuery;
EXECUTE stmtp;
End;
MySQL程序不支持可選參數。 你必須做你正在做的事情(傳入並測試NULL
)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.