Comment écrire une instruction IF ELSE dans une requête MySQL?
Quelque chose comme ça:
mysql_query("...(irrelevant code).. IF(action==2&&state==0){state=1}");
Ensuite, dans mon tableau, je devrais pouvoir le faire:
$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
la source
la source
N.id
et(CASE WHEN ...
AS N.state
pourAS state
.=
plutôt que==
pour comparaison?vous devez l'écrire en SQL pas en style C / PHP
à utiliser dans la requête
IF ( action = 2 AND state = 0 ) THEN SET state = 1
pour une utilisation dans des procédures ou des fonctions stockées
la source
Vous recherchez
case
:case when action = 2 and state = 0 then 1 else 0 end as state
MySQL a une
if
syntaxe (if(action=2 and state=0, 1, 0)
), maiscase
est plus universelle.Notez qu'il
as state
n'y a que l'alias de la colonne. Je suppose que c'est dans la liste des colonnes de votre requête SQL.la source
SELECT col1, col2, IF( action = 2 AND state = 0, 1, 0 ) AS state from tbl1;
OU
SELECT col1, col2, (case when (action = 2 and state = 0) then 1 else 0 end) as state from tbl1;
les deux résultats seront identiques ...
la source
selon le manuel de référence mySQL, voici la syntaxe d'utilisation de l'instruction if et else:
Donc en ce qui concerne votre requête:
ou vous pouvez utiliser
IF ((action=2)&&(state=0)) then state = 1; ELSE state = 2; END IF;
Il y a un bon exemple dans ce lien: http://easysolutionweb.com/sql-pl-sql/how-to-use-if-and-else-in-mysql/
la source