为什么简单的 If ELSE 语句在 mySql 中不起作用

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”附近使用的正确语法

Tra*_*kel 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 ;
Run Code Online (Sandbox Code Playgroud)

查看if/else 的文档以获取更多信息。