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');
我测试了 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');