MYSQL if statements

Résolu/Fermé
Smoking bird Messages postés 870 Date d'inscription mardi 11 mars 2008 Statut Membre Dernière intervention 10 juillet 2011 - 8 sept. 2009 à 22:26
Smoking bird Messages postés 870 Date d'inscription mardi 11 mars 2008 Statut Membre Dernière intervention 10 juillet 2011 - 9 sept. 2009 à 16:42
Bonjour,

Je cherche un tuto sur l'utilisation du if statement en mysql, mais impossible d'en trouver. Si personne n'en connait, quelqu'un saurait il si on peut se servir du if mysql dans une requête passée par php?

En vous remerciant,

Smoke

11 réponses

P@t@ch0n Messages postés 565 Date d'inscription mercredi 15 avril 2009 Statut Membre Dernière intervention 28 décembre 2009 85
9 sept. 2009 à 00:06
La documentation non ?

En général, on se sert plus de case que de if.
0
Smoking bird Messages postés 870 Date d'inscription mardi 11 mars 2008 Statut Membre Dernière intervention 10 juillet 2011 58
9 sept. 2009 à 00:15
bin justement, la doc m'aide pas franchement pour ce qui m'intéresse :s, de plus, je n'ai jamais vu d'aide php dans la doc mysql^^ :s
0
P@t@ch0n Messages postés 565 Date d'inscription mercredi 15 avril 2009 Statut Membre Dernière intervention 28 décembre 2009 85
9 sept. 2009 à 00:25
Quel rapport avec le php ?

http://dev.mysql.com/doc/refman/5.0/fr/if-statement.html
http://dev.mysql.com/doc/refman/5.0/fr/case-statement.html
0
Smoking bird Messages postés 870 Date d'inscription mardi 11 mars 2008 Statut Membre Dernière intervention 10 juillet 2011 58
9 sept. 2009 à 00:29
Lol, merci de ton intérêt^^ j'ai déjà parcouru la doc sur le if, mais pas sur le case.
En fait je trouve pas comment j'pourrais intéresser un if mysql dans une requête mysql appellée via php :s j'trouve rien dessus :s
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
P@t@ch0n Messages postés 565 Date d'inscription mercredi 15 avril 2009 Statut Membre Dernière intervention 28 décembre 2009 85
9 sept. 2009 à 00:31
Montre un exemple de requête que tu voudrais obtenir ;)
0
Smoking bird Messages postés 870 Date d'inscription mardi 11 mars 2008 Statut Membre Dernière intervention 10 juillet 2011 58
9 sept. 2009 à 01:22
SELECT DISTINCT count( n.ref ) , n.chatTag, n.ref, n.Date, n.Titre, n.author, n.reader, a.artName
FROM notebox n
INNER JOIN accounts a ON 
begin
if n.reader='0000000001' then n.author=a.tag;
else n.reader = a.tag
end//
WHERE (
n.reader = '0000000001'
OR author = '0000000001'
)
AND n.Stat >0
AND n.Own LIKE '%0000000001%'
GROUP BY n.chatTag
LIMIT 0 , 30
0
P@t@ch0n Messages postés 565 Date d'inscription mercredi 15 avril 2009 Statut Membre Dernière intervention 28 décembre 2009 85
9 sept. 2009 à 10:36
Utilise le case, ou la fonction if() si tu n'as que 2 états, la structure if|else ne doit pas être utilisable directement dans une requête.
0
Smoking bird Messages postés 870 Date d'inscription mardi 11 mars 2008 Statut Membre Dernière intervention 10 juillet 2011 58
9 sept. 2009 à 12:42
Salut, et merci pour ton coup de main au passage :)
Comment suis je supposé intégrer ces conditions dans ma requête? comme ça, sauvagement, avec des délimiteurs précis?
0
P@t@ch0n Messages postés 565 Date d'inscription mercredi 15 avril 2009 Statut Membre Dernière intervention 28 décembre 2009 85
9 sept. 2009 à 15:30
Non, sans délimiteurs.
Avec CASE, cela devrait faire :
... FROM notebox n
INNER JOIN accounts a ON 
CASE n.reader
    WHEN '0000000001' THEN n.author=a.tag
    ELSE n.reader = a.tag
END
WHERE ...
Et avec la fonction IF :
... FROM notebox n
INNER JOIN accounts a ON IF(n.reader='0000000001', n.author=a.tag, n.reader = a.tag)
WHERE ...
0
Smoking bird Messages postés 870 Date d'inscription mardi 11 mars 2008 Statut Membre Dernière intervention 10 juillet 2011 58
9 sept. 2009 à 16:03
ouaaaaaaaaaaaaaa ça m'a tout l'air de marcher!!! je colle ça dans mon php pour vérifier et j'te dis :)
0
Smoking bird Messages postés 870 Date d'inscription mardi 11 mars 2008 Statut Membre Dernière intervention 10 juillet 2011 58
9 sept. 2009 à 16:42
Bon, okay, ça devrait le faire maintenant :) ça m'a évité pas mal de galères avec php!! Je laisse mon ancien code en commentaire, histoire de mettre à l'épreuve le système actuel^^
En tous cas merci pour ton aide, je planchais dessus depuis une bonne semaine :)

Bonne journée!
0