|
Voir le sujet précédent :: Voir le sujet suivant
|
| Auteur |
Message |
| |
|
SuperPJ WRInaute passionné

Inscrit le: 15 Jan 2005 Messages: 513 Localisation: Paris, France
|
Posté le : Lun Aoû 01, 2005 5:16 Sujet du message: [SQL] Instruction conditionnelle IF avec MySQL |
|
|
Voici ce que j'ai lu sur :
http://dev.mysql.com/doc/mysql/en/if-statement.html
| Code: |
IF search_condition THEN statement_list
[ELSEIF search_condition THEN statement_list] ...
[ELSE statement_list]
END IF
IF implements a basic conditional construct. If the search_condition evaluates to true, the corresponding SQL statement list is executed. If no search_condition matches, the statement list in the ELSE clause is executed. statement_list can consist of one or more statements. |
Ce que j'essaie de faire c'est :
| Code: |
IF SELECT champ1 FROM table WHERE champ1='valeur1' THEN UPDATE table SET champ2=champ2+1 WHERE champ1='valeur1'
ELSE INSERT INTO table (champ1,champ2) VALUES ('valeur1','valeur2')
END IF |
Mais ça ne marche pas
J'ai aussi essayé avec des ";"
| Code: |
IF SELECT champ1 FROM table WHERE champ1='valeur1' THEN UPDATE table SET champ2=champ2+1 WHERE champ1='valeur1';
ELSE INSERT INTO table (champ1,champ2) VALUES ('valeur1','valeur2');
END IF |
Mais ca ne fontionne pas non plus : "you have an sql error".
J'ai posé la question sur 2 autres forums, aucune réponse
Je ne comprends pourquoi ça ne fonctionne pas alors que d'après la doc ça le devrait  |
|
| |
|
 |
Didier_S WRInaute passionné

Inscrit le: 24 Aoû 2004 Messages: 562 Localisation: Paris
|
Posté le : Lun Aoû 01, 2005 5:49 Sujet du message: [SQL] Instruction conditionnelle IF avec MySQL |
|
|
Ha c'est bien digne d'un SuperPJ ...
en effet, la doc n'a pas l'air très claire, et l'un des commentaires dit "there is no real answer"
c'était trop beau pour être vrai ?
on devrait peut-être contacter le support mysql, qui sait... |
|
| |
|
 |
vnico Nouveau WRInaute
Inscrit le: 19 Avr 2005 Messages: 29
|
Posté le : Lun Aoû 01, 2005 7:33 Sujet du message: [SQL] Instruction conditionnelle IF avec MySQL |
|
|
Essaye avec des parenthèses :
IF (SELECT champ1 FROM table WHERE champ1='valeur1') THEN (UPDATE table SET champ2=champ2+1 WHERE champ1='valeur1')
ELSE (INSERT INTO table (champ1,champ2) VALUES ('valeur1','valeur2'))
END IF
Verifie egalement la version de ton serveur MySQL, ca fonctionne à partir d'une certaine version je crois.
Nico |
|
| |
|
 |
ysimon WRInaute occasionnel

Inscrit le: 24 Fév 2004 Messages: 143
|
Posté le : Lun Aoû 01, 2005 7:48 Sujet du message: [SQL] Instruction conditionnelle IF avec MySQL |
|
|
je vois pas pourquoi un
select champ from table where champ=toto renverrait true or false
donc, moi, en sql, quand je veux savoir si un enregistrement existe, je vais un
select count(*) from table where champ = toto
donc, dans ton cas, je ferais un truc genre
if (select count(*) from table where champ1=valeur > 0) ....
plutot |
|
| |
|
 |
shrom WRInaute passionné

Inscrit le: 05 Juil 2004 Messages: 866
|
Posté le : Lun Aoû 01, 2005 9:54 Sujet du message: [SQL] Instruction conditionnelle IF avec MySQL |
|
|
C'est la syntaxe des procédures stockée qui ne sont disponibles qu'à partir de MySQL 5.
Avec une version inférieure, il n'y a pas moyen de faire ce genre de tests, il faut passer par le langage de programmation. |
|
| |
|
 |
| |
|
|