Как написать оператор 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
5 ответов:
вы, вероятно, хотите использовать
CASEвыражение.Они выглядят так:
SELECT col1, col2, (case when (action = 2 and state = 0) THEN 1 ELSE 0 END) as state from tbl1;
вы должны написать его в SQL, а не в стиле C/PHP
IF( action = 2 AND state = 0, 1, 0 ) AS stateдля использования в запросе
IF ( action = 2 AND state = 0 ) THEN SET state = 1для использования в хранимых процедурах или функциях
вы ищете
case:case when action = 2 and state = 0 then 1 else 0 end as stateMySQL имеет
ifсинтаксис (if(action=2 and state=0, 1, 0)), ноcaseболее универсален.отметим, что
as stateесть только сглаживание столбца. Я предполагаю, что это в списке столбцов SQL-запроса.
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;оба результата будут одинаковыми....
согласно справочному руководству 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/
Comments