gpt4 book ai didi

mysql - MySQL 存储过程中的条件 WHERE 子句

转载 作者:行者123 更新时间:2023-11-29 01:24:38 25 4
gpt4 key购买 nike

下面是我创建的存储过程的简化示例。

DELIMITER //
CREATE PROCEDURE test (IN val1 INT, IN val2 INT)
BEGIN
UPDATE TABLE SET value=val1 WHERE cond=val2;
END //
DELIMITER ;

现在,假设我想让条件成为可选的。我可以通过在调用过程时将 val2 设置为 NULL 然后使用 IF 语句在值不是 。 (在我的例子中,可以安全地假设 cond=NULL 不是要检查的有效条件。)

这行得通,但是我的 UPDATE 查询要复杂得多,而且为了使条件可选而复制它似乎很不幸。我可以动态构造查询字符串并传递给 EXECUTE,但感觉也不对,我失去了语法检查。

有什么建议吗?谢谢!

最佳答案

试试这个:

UPDATE yourtable
SET value = val1
WHERE cond = val2 OR val2 IS NULL

关于mysql - MySQL 存储过程中的条件 WHERE 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5305394/

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