SQL中存储过程里面没法使用if()条件函数

我的mysql的版本是5.6,
以下运行的话正常应该使abc=3,但是却出现错误:
[Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '$$
DELIMITER' at line 4

DELIMITER $$
DROP PROCEDURE IF EXISTS `TEST` $$
CREATE PROCEDURE `TEST`(IN aaa INT)
BEGIN
    SET @abc=if(1>2,3,2);
END $$
DELIMITER ;

但是以下两种情况都能运行:

SET @abc=if(1>2,3,2);

也可以尝试把set换成select也可以运行:

DELIMITER $$
DROP PROCEDURE IF EXISTS `TEST` $$
CREATE PROCEDURE `TEST`(IN aaa INT)
BEGIN
--     SELECT @abc=if(1>2,3,2);
END $$
DELIMITER ;

有没有人知道原因?
谢谢大神指导!

阅读 4.4k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题