Chr*_*ris 4 mysql stored-procedures if-statement
我正在尝试使用 SQLYog 中的 if else 语句针对 mySql 数据库创建一个简单的存储过程。我对 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
Run Code Online (Sandbox Code Playgroud)
如果有人能帮助我并告诉我哪里出错了,我将不胜感激。谢谢阅读。
当我尝试执行时,我得到以下信息:
错误代码:1064 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,了解在第 5 行“ELSE SELECT * FROM tblProduct where intProductId = 2 END IF”附近使用的正确语法
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 ;
Run Code Online (Sandbox Code Playgroud)
查看if/else 的文档以获取更多信息。