mariadb IF 语句错误信息?

Mr.*_*ark 7 mariadb mariasql

我测试 sql 查询。

    IF 3 = 3 THEN 
       SELECT 'TRUE'
    ELSE
       SELECT 'FALSE'
    END IF;
Run Code Online (Sandbox Code Playgroud)

我在 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
Run Code Online (Sandbox Code Playgroud)

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

ele*_*nst 9

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

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

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

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

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

DELIMITER $
BEGIN NOT ATOMIC
    IF 3 = 3 THEN 
       SELECT 'TRUE';
    ELSE
       SELECT 'FALSE';
    END IF;
END $
DELIMITER ;
Run Code Online (Sandbox Code Playgroud)

另一个IF函数,它可以查询中使用:

SELECT IF(3 = 3 THEN 'TRUE','FALSE');
Run Code Online (Sandbox Code Playgroud)