2017-02-14 2 views
-1

Я использую этот код, но вижу синтаксическую ошибку.MySQL + PHP В инструкции MySQL IF неверно? Как создать простой оператор If MySQL 5.50?

MYSQL 5.5.50.0

IF 2>1 THEN 

SELECT "HELLO WORLD!" 

END IF; 

EDIT: Этот код не будет работать. Потому что IF Statement используется только с помощью функции FUNCTION и процедуры.

Ошибка: функция

SQL-ERROR: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IF 2>1 THEN 

моего readSql ($ SQL) работает большинство случая. Я думаю, что мой код MySQL неверен.

Что не так? Спасибо.

EDIT:

Оператор IF только с использованием функций и процедур.

+3

[ 'IF' в эта форма] (https://dev.mysql.com/doc/refman/5.7/en/if.html) работает только внутри хранимой процедуры, а не как произвольная инструкция. – tadman

ответ

2

MySQL IF() принимает три выражения, и если первое выражение истинно, а не ноль, а не NULL, оно возвращает второе выражение. В противном случае возвращается третье выражение.

В зависимости от контекста, в котором он используется, он возвращает либо числовое, либо строковое значение.

IF(expression ,expr_true, expr_false); 

Например, вы могли бы иметь запрос:

SELECT IF(1>3,'true','false'); 
#return false 

Если вы просто хотите вернуть строку 'HELLO WORLD', вы можете использовать:

SELECT CASE WHEN 2 > 1 THEN 'HELLO WORLD' END 
Смежные вопросы