Mic*_*ior 2 mysql stored-procedures
下面是我创建的存储过程的简化示例.
DELIMITER //
CREATE PROCEDURE test (IN val1 INT, IN val2 INT)
BEGIN
UPDATE TABLE SET value=val1 WHERE cond=val2;
END //
DELIMITER ;
Run Code Online (Sandbox Code Playgroud)
现在,假设我想使条件可选.我可以通过设置val2为NULL调用过程然后使用IF语句来使用条件(如果值不是)来执行此操作NULL.(在我的情况下,可以安全地假设这cond=NULL不是检查的有效条件.)
这是有效的,但UPDATE我的查询要复杂得多,复制它似乎很不幸只是为了使条件可选.我可以动态构造查询字符串并传递给EXECUTE,但这也感觉不对,我失去了语法检查.
有什么建议?谢谢!
试试这个:
UPDATE yourtable
SET value = val1
WHERE cond = val2 OR val2 IS NULL
Run Code Online (Sandbox Code Playgroud)