Formation par Olivier Duffez

Formation au référencement par Olivier Duffez, créateur de WebRankInfo !
Une formule efficace alliant théorie et pratique, avec une haute disponibilité des intervenants
Cette formule a déjà convaincu plusieurs centaines d'entreprises, pourquoi pas vous ?
Réservez vite votre place en ligne (convention possible pour imputer sur le budget formation)

Formation référencement Marseille

[SQL] Instruction conditionnelle IF avec MySQL

Poster un nouveau sujet Imprimer cette discussion    Forum -> Administration d'un site Web   Les dernières discussions de ce forum sont disponibles au format RSS
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
 
SuperPJ
WRInaute passionné
WRInaute passionné

Inscrit le: 15 Jan 2005
Messages: 513
Localisation: Paris, France

URL permanente de ce messagePosté 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 Sad


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 Sad
Je ne comprends pourquoi ça ne fonctionne pas alors que d'après la doc ça le devrait Confused
 
SuperPJ Visiter le site web du posteur
Didier_S
WRInaute passionné
WRInaute passionné

Inscrit le: 24 Aoû 2004
Messages: 562
Localisation: Paris

URL permanente de ce messagePosté 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...
 
Didier_S Visiter le site web du posteur
vnico
Nouveau WRInaute

Inscrit le: 19 Avr 2005
Messages: 29

URL permanente de ce messagePosté 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
 
vnico Visiter le site web du posteur
ysimon
WRInaute occasionnel
WRInaute occasionnel

Inscrit le: 24 Fév 2004
Messages: 143

URL permanente de ce messagePosté 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
 
ysimon Visiter le site web du posteur
shrom
WRInaute passionné
WRInaute passionné

Inscrit le: 05 Juil 2004
Messages: 866

URL permanente de ce messagePosté 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.
 
shrom Visiter le site web du posteur
 
Montrer les messages depuis:   
Revenir en haut    Forum -> Administration d'un site Web Toutes les heures sont au format GMT + 1 Heure
Page 1 sur 1 - 
Connexion
Nom d'utilisateur:    Mot de passe:      Se connecter automatiquement à chaque visite    

CLIQUEZ ICI pour vous inscrire à WebRankInfo (forum, annuaire, outils...)

Connexion

© 2001-2005 phpBB Group, support français
Personnalisation : WebRankInfo ™


 ODP  Firefox  Alsacreations  annuaire webmaster Yagoort