gpt4 book ai didi

mysql - MySQL 存储过程出现问题

转载 作者:行者123 更新时间:2023-11-29 08:54:15 25 4
gpt4 key购买 nike

在下面的过程中,我有两个参数 - 当我运行时应该填充这两个参数。我希望这些参数是可选的,如果我填充第一个数据,则应根据一个参数进行过滤;如果我填充第二个数据并保留为空,则第一个数据应根据第二个参数进行过滤,如果我传递了两个参数,则应根据第一个参数进行过滤如果我没有传递参数,则这两个参数不应被过滤。

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)。

关于mysql - MySQL 存储过程出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10395425/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com