UPDATE avec JOIN, WHERE, LIMIT, ORDER BY

UPDATE avec JOIN, WHERE, LIMIT, ORDER BY - PHP - Programmation

Marsh Posté le 02-10-2010 à 19:08:21    

Bonjour,

 

J'ai une table test comportant 3 champs :
id nb clef

 

J'aimerais faire la requête SQL suivante sur cette table :

Code :
  1. UPDATE test JOIN test2 ON test.id=test2.id SET nb=74 WHERE nb>1 ORDER BY clef DESC LIMIT 2

et j'obtiens le message d'erreur suivant :

Code :
  1. "#1221 - Incorrect usage of UPDATE and ORDER BY"
 

Si je supprime la partie de la requête concernant la jointure (JOIN test2 ON test.id=test2.id), la requête fonctionne correctement.

 

Notez que dans le cas "réel", la partie "WHERE nb>1" est remplacée par une conditions sur les champs de la table avec la jointure, c'est d'ailleurs pour cela que j'ai besoin de faire la jointure.

 

Pourriez vous m'aider à résoudre le problème ?

 

Merci d'avance


Message édité par nisalon_caje le 02-10-2010 à 19:12:11
Reply

Marsh Posté le 02-10-2010 à 19:08:21   

Reply

Marsh Posté le 02-10-2010 à 20:10:26    

Citation :

Multiple-table syntax:

 

UPDATE [LOW_PRIORITY] [IGNORE] table_references
    SET col_name1={expr1|DEFAULT} [, col_name2={expr2|DEFAULT}] ...
    [WHERE where_condition]


http://dev.mysql.com/doc/refman/5.1/en/update.html

 

donc
UPDATE test, test2 SET nb=74 WHERE  test.id=test2.id AND nb>1 ORDER BY clef DESC LIMIT 2


Message édité par flo850 le 02-10-2010 à 20:10:50
Reply

Marsh Posté le 02-10-2010 à 20:52:55    

Cela ne marche pas. D'après le lien du manuel que vous m'avez donné, dans le cas d'une update multi table, les instructions order by et limit ne peuvent pas être utilisées.
 
Y aurait-il une autre manière de procéder ?


---------------
http://nisalon.labrute.com/
Reply

Marsh Posté le 02-10-2010 à 21:25:36    

update ...  where [id] in (select id from ... where...order by...) ?


Message édité par skeye le 02-10-2010 à 21:26:35

---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 05-10-2010 à 17:59:52    

J'suis curieux, c'est quoi l'intéret d'un order by pour faire un update? Tu n'as aucun résultat à afficher, pourquoi vouloir trier?


---------------
C'était vraiment très intéressant.
Reply

Marsh Posté le 05-10-2010 à 18:03:53    

lasnoufle a écrit :

J'suis curieux, c'est quoi l'intéret d'un order by pour faire un update? Tu n'as aucun résultat à afficher, pourquoi vouloir trier?


Il fait aussi un limit. ;)


---------------
Can't buy what I want because it's free -
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed