{MySQL} Condition ds une requête Select (IF) [Résolu/Fermé]

Signaler
Messages postés
111
Date d'inscription
samedi 18 octobre 2008
Statut
Membre
Dernière intervention
29 juillet 2010
-
Messages postés
111
Date d'inscription
samedi 18 octobre 2008
Statut
Membre
Dernière intervention
29 juillet 2010
-
Bonjour,
J'aimerai mettre une condition dans une requête "SELECT" pour afficher une colonne supplémentaire avec un libellé.
Au départ, le libellé je l'avais générer dans le code en PHP, mais je ne peux donc pas faire de tri dessus.
C'est pourquoi j'ai pensé le générer dans le select.
Cependant je ne connais pas la syntaxe et je ne sais pas ou la trouver.
Pour le moment j'ai tester avec un:
SELECT * ,(if (table1_id =2 OR table2_id=3) then "quelquechose" END) as champ_sup
FROM table1 t1
JOIN table2 t2 m ON t1.table1_ext=t2.table2_id
WHERE t1.champ="coucou"

pour avoir un affichage avec des:
**|**|table1_id|table2_id|**|champ_sup
**|**|1 |1 |**|
**|**|2 |1 |**|quelquechose

enfin par exemple... quelqu'un connaitrait l'adresse d'un tuto pour la syntaxe des ces conditions dans le select?
Merci d'avance! :)

3 réponses

Messages postés
111
Date d'inscription
samedi 18 octobre 2008
Statut
Membre
Dernière intervention
29 juillet 2010
22
Pour ceux que ca intéresse, j'ai trouvé la solution a mon problème.

Alors dans la clause "select" il faut faire comme suit:
la syntaxe du if est: IF(test, si_vrai, si_faux)

Select *, IF(champ1 is null,IF(test2,"oui","non"),"non") from maTable
13
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 66686 internautes nous ont dit merci ce mois-ci

Messages postés
816
Date d'inscription
samedi 21 juin 2008
Statut
Membre
Dernière intervention
17 juillet 2012
181
Du devrais aller voir du côté de CASE :
http://sql.1keydata.com/fr/sql-case.php
Messages postés
111
Date d'inscription
samedi 18 octobre 2008
Statut
Membre
Dernière intervention
29 juillet 2010
22
Je vais voir ce que je peux faire avec un case, seulement c'est plutot un "IF" qu'il me faut (j'ai pas le droit de mettre ma vrai requête) mais elle est un peu plus complexe que de tester 2 valeurs.

C'est plutot du genre: si un champs est renseigner et pas un autre, tu mets telle valeur...
sinon, si telle valeur = telle autre valeur, tu mets "concaténé("blabla" + valeur de tel champ + "blabla)

en gros...