Bonjour
Je r�ve ou sur mysql on ne peut pas faire comme sur Oracle par exemple
une requete du genre
update table set titi = 'toto' where id in (select id from table where....)
![]()
![]()
![]()
merci!!!
![]()
Bonjour
Je r�ve ou sur mysql on ne peut pas faire comme sur Oracle par exemple
une requete du genre
update table set titi = 'toto' where id in (select id from table where....)
![]()
![]()
![]()
merci!!!
![]()
MySql sait g�rer les requetes imbriqu�es a partir de la version 4.1 je crois.
Peut etre as tu une version plus ancienne ?
Tu peux le faire � partir de la version 4.1 seulement.
Sinon, tu peux certainement faire la m�me chose sans requ�te imbriqu�e, �ventuellement avec une jointure.
"On en a vu poser les armes avant de se tirer une balle dans le pied..."
-- pyd�velop
Derniers articles:
(SQL Server) Introduction � la gestion des droits
(UML) Souplesse et modularit� gr�ce aux Design Patterns
(UML) Le Pattern Etat
Autres articles...
Effectivement, j'ai la version 4.0![]()
Si j'installe la version 5.0, j'�crase ma base?
J'ai easyphp.
Que dois-je installer et comment pour ne pas avoir � tout refaire?![]()
Merci![]()
![]()
non. il suffit de faire une sauvegarbe du r�pertoire data et de la transf�rerdans la nouvelle version de MySQL.Envoy� par Garra
sinon, tout n'est pas � refaire, mais j'ai oubli� la marche � suivre exacte.
Tu peux sans doute faire la m�me chose sans requ�tes imbriqu�es, c'est quoi la requ�te que tu essayes de faire?
"On en a vu poser les armes avant de se tirer une balle dans le pied..."
-- pyd�velop
Derniers articles:
(SQL Server) Introduction � la gestion des droits
(UML) Souplesse et modularit� gr�ce aux Design Patterns
(UML) Le Pattern Etat
Autres articles...
Ca y est! c'est fait et �a marche![]()
J'ai install� la version suivante de easyphp avec tout le tralala
et la version 4.1 de mysql
Mais pour info:
il me semble impossible de faire un update du genre (c'est un exemple):
udpate table1 set titi = toto where id in (select id from table2 where type = 'xxx')
avec une jointure....., le update ne le permet pas![]()
(c'est bizarre que mysql ait mis autant de temps � s'adapter � une
base comme oracle par exemple (celle que je pr�f�re))
Merci � tous et chau chau chau![]()
![]()
![]()
![]()
Ah oui? Et �a alors?:Envoy� par Garra
Voir �galement:
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6 UPDATE table1 INNER JOIN table2 ON (table1.id = table2.id) SET table1.titi = toto WHERE table2.type = 'xxx'
http://www.developpez.net/forums/viewtopic.php?t=423925
"On en a vu poser les armes avant de se tirer une balle dans le pied..."
-- pyd�velop
Derniers articles:
(SQL Server) Introduction � la gestion des droits
(UML) Souplesse et modularit� gr�ce aux Design Patterns
(UML) Le Pattern Etat
Autres articles...
Salut,
En suivant tes conseils j'ai fait
mais �a ne marche pas
Code : S�lectionner tout - Visualiser dans une fen�tre � part UPDATE particule INNER JOIN particulegroupe ON ( particule.idNum = particulegroupe.idNum ) SET particule.dateAffichage = NOW( ) WHERE particule.idNum IN ( 2, 33, 32, 37, 11, 27, 29, 28, 14, 26, 45, 41, 48, 27, 40, 17, 45, 36, 26, 4, 1, 18, 30, 20, 31, 6, 38, 40, 2, 41, 27, 5, 25, 11, 43, 37, 38, 24, 16, 4, 2, 12, 45, 1, 40, 36, 18, 36, 24 ) AND particulegroupe.codeGroupe = 'FOND'
Merci de m'aider!!![]()
Bonjour et merci
D�s que j'enl�ve la condition
�a marche mais il me faut cette condition!!
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2 AND particulegroupe.codeGroupe = 'FOND'
Merci
En fait �a marche sur ma base local 4.1 mais le probl�me c'est que mon super hebergeur ne me mets � dispo que la version pr�c�dente de
mysql et l�, �a ne marche pas!
MySQL a r�pondu:
C'est tout ce que j'ai comme erreur
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3#1064 - You have an error in your SQL syntax near 'INNER JOIN particulegroupe ON ( particule.idNum = particulegroupe.idNum ) SET ' at line 1
Merci
C'est quelle version exactement ? On dirait qu'il ne supporte pas les UPDATE multi-tables...
J'ai peut-�tre une solution alternative:
1) tu cr��s une table temporaire
2) dans cette table temporaire, tu ins�res tous les enregistrements qui seront affect�s par le changement:
3) tu fais ton UPDATE sur les enregistrements de ta table temporaire:
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5 INSERT INTO table_temporaire SELECT table1.* FROM table1 INNER JOIN table2 ON ... WHERE ...
4) tu "commit" les changements dans la table de d�part
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2 UPDATE table_temporaire SET truc='bidulle'
5) tu nettoyes ta table temporaire :
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3 REPLACE INTO table1 SELECT * FROM table_temporaire
Du coup, plus de probl�me de version ou de syntaxe !
Code : S�lectionner tout - Visualiser dans une fen�tre � part TRUNCATE TABLE table_temporaire
"On en a vu poser les armes avant de se tirer une balle dans le pied..."
-- pyd�velop
Derniers articles:
(SQL Server) Introduction � la gestion des droits
(UML) Souplesse et modularit� gr�ce aux Design Patterns
(UML) Le Pattern Etat
Autres articles...
Oui, j'avais pens� � faire quelque chose comme
cela mais c'est du bricolage insupportable.
J'ai fait oracle pendant 15 ans, et je inner join
n'�tait pas en tout cas � mon �poque, utilis�.
T'en fais pas, je trouverais une solution plut�t c�t� m�moire (array)
car peu de donn�es
Merci!!!
Salut
Je te remercie grace a ce topic j'ai trouv� la bonne syntaxe qui marche en effet
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5 UPDATE table1 INNER JOIN table2 ON (table1.id = table2.id) SET table1.titi = toto WHERE table2.type = 'xxx'
Partager