我正在尝试在 SQLYog 中针对 mySql 数据库创建一个带有 if else 语句的简单存储过程。我不太熟悉 mySql 语法,所以我希望它很简单,但我就是不明白为什么这不起作用
CREATE PROCEDURE p(IN Number INT)
IF NUMBER = 1 THEN
SELECT * FROM tblProduct WHERE ProductID = Number
ELSE SELECT * FROM tblProduct WHERE ProductId = 2
END IF
如果有人能帮助我并告诉我哪里出错了,我将不胜感激。 感谢阅读。
我在尝试执行时得到以下信息:
错误代码:1064 您的 SQL 语法有误;查看与您的 MySQL 服务器版本对应的手册,了解在 'ELSE SELECT * FROM tblProduct where intProductId = 2 附近使用的正确语法 END IF' 在第 5 行
最佳答案
MySQL 中的语句由分号分隔。要用它们创建过程,您可以像这样做一个小技巧:
DELIMITER //
CREATE PROCEDURE p(IN Number INT)
BEGIN
IF NUMBER = 1 THEN
SELECT * FROM tblProduct WHERE ProductID = Number;
ELSE
SELECT * FROM tblProduct WHERE ProductId = 2;
END IF;
END //
DELIMITER ;
查看 documentation对于 if/else 了解更多信息。
关于mysql - 为什么简单的 If ELSE 语句在 mySql 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4294312/