在我的phpmyadmin安装中,SQL选项卡没有处理IF THEN语句。但是,它确实可以正确处理 IF() 函数。例如,这工作正常:
SET @thisyear = IF(YEAR(CURRENT_DATE) = 2018, 2018, 2019);
SELECT @thisyear AS ThisYear, `foobar`.`id` AS ID ...
但是,以下内容会生成错误:
IF year(CURRENT_DATE) = '2018' THEN
SET @thisyear = '2018';
END IF;
SELECT @thisyear AS ThisYear, `foobar`.`id` AS ID ...
这是错误消息:
#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 'IF year(CURRENT_DATE) = '2018' THEN
SET @thisyear = '2018'' at line 1
我的 phpmyadmin 配置中是否存在问题,或者我需要在使用 IF 语句之前先调用某些内容?提前谢谢。
>IF
是一个控制流语句,只允许在编程块中 - 存储过程,函数,触发器,事件。
IF()
是SQL语言的MySQL扩展,它是一个标量函数,可以在任何使用标量函数的地方使用。 也就是说,您可以改用标准CASE
表达式。
这种区别实际上在文档中明确指出:
存储程序的 IF 语句实现基本条件构造。
注意
还有一个 IF() 函数,它与此处描述的 IF 语句不同。请参见第 12.4 节 "控制流函数"。IF 语句可以包含 THEN、ELSE 和 ELSEIF 子句,并以 END IF 结尾。