在我的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语句之前需要先调用某些内容?提前致谢。
答案 0 :(得分:0)
IF
是仅在编程块(存储过程,函数,触发器,事件)中允许的控制流语句。
IF()
是SQL语言的MySQL扩展,它是一种标量函数,可在使用标量函数的任何地方使用。也就是说,您可以只使用标准的CASE
表达式。
实际上在documentation中明确指出了这种区别:
用于存储程序的IF语句实现了基本的条件构造。
注意
还有一个IF()函数,该函数不同于此处描述的IF语句。请参见第12.4节“控制流功能”。 IF语句可以包含THEN,ELSE和ELSEIF子句,并以END IF终止。