mariadb IF语句错误信息?

mariadb IF statements error message?

我测试了 sql 个查询。

    IF 3 = 3 THEN 
       SELECT 'TRUE'
    ELSE
       SELECT 'FALSE'
    END IF;

我在 SQLyog 上执行了那个查询。

我收到以下错误消息。

 You have an error in your SQL syntax; check the manual that corresponds to 
 your MariaDB server version for the right syntax to use near 'ELSE SELECT 
 'FALSE' END IF' at line 3

那个查询很简单。我不知道为什么会出现错误消息。

您需要在每个内部语句的末尾使用分号,如下所示:

IF 3 = 3 THEN 
   SELECT 'TRUE';
ELSE
   SELECT 'FALSE';
END IF;

IF本身不是查询,不能作为独立语句执行。

您可以使用两种不同的 IF

一个就是conditional construct in compound statements。可用于存储例程:

DELIMITER $
CREATE PROCEDURE pr()
BEGIN
    IF 3 = 3 THEN 
       SELECT 'TRUE';
    ELSE
       SELECT 'FALSE';
    END IF;
END $
DELIMITER ;
CALL pr;

或者,如果您是 运行 相当新的 MariaDB 版本 (10.1+),您也可以在 anonymous block:

中使用它
DELIMITER $
BEGIN NOT ATOMIC
    IF 3 = 3 THEN 
       SELECT 'TRUE';
    ELSE
       SELECT 'FALSE';
    END IF;
END $
DELIMITER ;

另一个IF函数,可以在里面一个查询使用:

SELECT IF(3 = 3 THEN 'TRUE','FALSE');