【问题标题】:Using IF statement on phpmyadmin SQL tab在 phpmyadmin SQL 选项卡上使用 IF 语句
【发布时间】:2018-12-26 15:32:45
【问题描述】:

在我安装的 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..then..end if..then..end

标签: mysql sql phpmyadmin


【解决方案1】:

IF 是一种控制流语句,只允许在编程块——存储过程、函数、触发器、事件中使用。

IF() 是 MySQL 对 SQL 语言的扩展,它是一个标量函数,可以在使用标量函数的任何地方使用。也就是说,您可以改用标准的CASE 表达式。

这种区别实际上是在documentation 中明确指出的:

存储程序的 IF 语句实现了一个基本的条件构造。

注意

还有一个 IF() 函数,它与此处描述的 IF 语句不同。请参见第 12.4 节“控制流函数”。 IF 语句可以有 THEN、ELSE 和 ELSEIF 子句,并以 END IF 结束。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-02-08
    • 2015-05-09
    • 1970-01-01
    • 2019-09-05
    • 2016-06-12
    • 2013-02-27
    • 2012-11-11
    • 1970-01-01
    相关资源
    最近更新 更多