Подтвердить что ты не робот

Как написать инструкцию IF ELSE в запросе MySQL

Как написать инструкцию IF ELSE в запросе MySQL?

Что-то вроде этого:

mysql_query("...(irrelevant code).. IF(action==2&&state==0){state=1}");

Затем в моем массиве я смогу сделать это:

 $row['state'] 
//this should equal 1, the query should not change anything in the database, 
//just the variable for returning the information
4b9b3361

Ответ 1

Вероятно, вы захотите использовать выражение CASE.

Они выглядят так:

SELECT col1, col2, (case when (action = 2 and state = 0) 
 THEN
      1 
 ELSE
      0 
 END)
 as state from tbl1;

Ответ 2

вы должны написать его в SQL, а не в стиле C/PHP

IF( action = 2 AND state = 0, 1, 0 ) AS state

для использования в запросе

IF ( action = 2 AND state = 0 ) THEN SET state = 1

для использования в хранимых процедурах или функциях

Ответ 3

Вы ищете case:

case when action = 2 and state = 0 then 1 else 0 end as state

MySQL имеет синтаксис if (if(action=2 and state=0, 1, 0)), но case является более универсальным.

Обратите внимание, что as state есть просто наложение столбца. Я предполагаю, что это находится в списке столбцов вашего SQL-запроса.

Ответ 4

SELECT col1, col2, IF( action = 2 AND state = 0, 1, 0 ) AS state from tbl1;

ИЛИ

SELECT col1, col2, (case when (action = 2 and state = 0) then 1 else 0 end) as state from tbl1;

оба результата будут одинаковыми....

Ответ 5

в соответствии с справочником mySQL это синтаксис использования оператора if и else:

IF search_condition THEN statement_list
[ELSEIF search_condition THEN statement_list] ...
[ELSE statement_list]
END IF

Итак, в отношении вашего запроса:

x = IF((action=2)&&(state=0),1,2);

или вы можете использовать

IF ((action=2)&&(state=0)) then 
state = 1;
ELSE 
state = 2;
END IF;

В этой ссылке есть хороший пример: http://easysolutionweb.com/sql-pl-sql/how-to-use-if-and-else-in-mysql/