7

我测试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

该查询非常简单。我不知道为什么会出现错误消息。

4

2 回答 2

10

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

您可以使用两种不同IF的 s。

一种复合语句中的条件构造。它可以用于存储的例程:

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

或者,如果您正在运行相当新的 MariaDB 版本(10.1+),您也可以在匿名块中使用它:

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');
于 2018-01-28T13:35:41.257 回答
0

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

IF 3 = 3 THEN 
   SELECT 'TRUE';
ELSE
   SELECT 'FALSE';
END IF;
于 2018-01-27T04:23:08.547 回答