MYSQL if statements

Résolu
Smoking bird Messages postés 870 Date d'inscription   Statut Membre Dernière intervention   -  
Smoking bird Messages postés 870 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Membre Dernière intervention   85
 
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   Statut Membre Dernière intervention   58
 
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   Statut Membre Dernière intervention   85
 
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   Statut Membre Dernière intervention   58
 
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   Statut Membre Dernière intervention   85
 
Montre un exemple de requête que tu voudrais obtenir ;)
0
Smoking bird Messages postés 870 Date d'inscription   Statut Membre Dernière intervention   58
 
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   Statut Membre Dernière intervention   85
 
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   Statut Membre Dernière intervention   58
 
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   Statut Membre Dernière intervention   85
 
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   Statut Membre Dernière intervention   58
 
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   Statut Membre Dernière intervention   58
 
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