在 phpmyadmin SQL 选项卡上使用 IF 语句



在我的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 结尾。

最新更新