UPDATE messages set test_read =1
WHERE userid='xyz'
ORDER BY date_added DESC
LIMIT 5, 5 ;
Je suis en train d'utiliser cette requête pour mettre à jour un ensemble de 5 lignes en utilisant la limite, mais mysql affiche un error..The celui ci-dessous travaillemettre à jour plusieurs lignes en utilisant la limite dans mysql?
UPDATE messages set test_read =1
WHERE userid='xyz'
ORDER BY date_added DESC
LIMIT 5 ;
pourquoi le premier ne fonctionne pas?
Avez-vous vraiment besoin de la sélection double imbriquée? Dans ms sql ce serait juste quelque chose comme "Où ID dans (SELECT TOP 5 id FROM messages ORDER BY date_added DESC)" –
Oui, MySQL ne vous permet pas de mettre à jour une table qu'il sélectionne. Le select imbriqué supplémentaire l'oblige à enregistrer les résultats dans une table temporaire. –
Lorsque vous demandez «si vous devez vraiment le faire de cette façon», suggérez-vous qu'il existe une meilleure alternative à la mise à jour des enregistrements en fonction d'un classement donné par l'ordre d'un de ses champs? – deed02392