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

标签 mysql stored-procedures if-statement

我正在尝试在 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/

相关文章:

mysql - 如何使用 MySQL 中的 SELECT 语句从一个表中获取数据,并从另一个表中覆盖它?

c# - 具有 IsIDenity 和 cmd.Parameters.Add 的存储过程

ios - Swift:UITextField IBAction - EditingChanged - 按钮保持启用状态,即使文本字段值已更改?

mysql - 在 Rails 中迁移期间重命名列时出错

mysql - 如果一个表中的主 ID 位于另一表中,如何更新该表中的列

MySQL:获取满足条件的特定增量的项目计数

SQL Server : How to group by substring

bash - 为什么我的带反引号的 if 语句不能正常工作?

php - 如果图像数组为空,则显示替代图像

mysql - 请求设置 DATABASES,但在我的 Django 项目中设置未配置错误