¿Cómo escribo una declaración IF ELSE en una consulta MySQL?
Algo como esto:
mysql_query("...(irrelevant code).. IF(action==2&&state==0){state=1}");
Luego, en mi matriz, debería poder hacer esto:
$row['state']
//this should equal 1, the query should not change anything in the database,
//just the variable for returning the information
mysql
if-statement
Dylan Cross
fuente
fuente
N.id
y(CASE WHEN ...
AS N.state
aAS state
.=
lugar de==
para comparar?debes escribirlo en SQL, no en estilo C / PHP
para usar en consultas
IF ( action = 2 AND state = 0 ) THEN SET state = 1
para su uso en funciones o procedimientos almacenados
fuente
Estas buscando
case
:case when action = 2 and state = 0 then 1 else 0 end as state
MySQL tiene una
if
sintaxis (if(action=2 and state=0, 1, 0)
), perocase
es más universal.Tenga en cuenta que
as state
solo hay un alias en la columna. Supongo que esto está en la lista de columnas de su consulta SQL.fuente
SELECT col1, col2, IF( action = 2 AND state = 0, 1, 0 ) AS state from tbl1;
O
SELECT col1, col2, (case when (action = 2 and state = 0) then 1 else 0 end) as state from tbl1;
ambos resultados serán iguales ...
fuente
de acuerdo con el manual de referencia de mySQL, esta es la sintaxis de usar la declaración if y else:
Entonces, con respecto a su consulta:
o puedes usar
IF ((action=2)&&(state=0)) then state = 1; ELSE state = 2; END IF;
Hay un buen ejemplo en este enlace: http://easysolutionweb.com/sql-pl-sql/how-to-use-if-and-else-in-mysql/
fuente