在phpmyadmin sql选项卡上使用if语句

cidc1ykv  于 2021-06-17  发布在  Mysql
关注(0)|答案(1)|浏览(469)

在我安装的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语句之前是否需要先调用某些内容?提前谢谢。

smtd7mpg

smtd7mpg1#

IF 是只允许在编程块(存储过程、函数、触发器和事件)中使用的控制流语句。 IF() 是sql语言的mysql扩展,它是一个标量函数,可以在任何使用标量函数的地方使用。也就是说,你可以使用标准 CASE 而不是表达式。
这一区别实际上在文件中明确指出:
存储程序的if语句实现了一个基本的条件构造。
笔记
还有一个if()函数,它与这里描述的if语句不同。见第12.4节“控制流功能”。if语句可以有then、else和elseif子句,并以end if终止。

相关问题