#javascript #mariadb
Вопрос:
Я тестирую 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
Этот запрос очень прост. Я не знаю, почему появляется сообщение об ошибке.
Ответ №1:
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');
Ответ №2:
Вам нужны точки с запятой в конце каждого внутреннего утверждения, например:
IF 3 = 3 THEN
SELECT 'TRUE';
ELSE
SELECT 'FALSE';
END IF;