Mysql instruction delete avec limite
Je suis en train de supprimer des lignes d'une table, mais j'obtiens une erreur.
DELETE FROM `chat_messages` ORDER BY `timestamp` DESC LIMIT 20, 50;
J'ai cette erreur à 50:
Vous avez une erreur dans votre syntaxe SQL; consultez le manuel qui correspond à votre versions du serveur MySQL pour la bonne syntaxe à utiliser près de '50' à la ligne 1
Aucune idée de ce qui est mauvais.
- Jetez un oeil à cette question aussi posté sur StackOverflow: stackoverflow.com/q/6111961/799653
Vous devez vous connecter pour publier un commentaire.
Vous ne pouvez pas spécifier le décalage dans
DELETE
'sLIMIT
clause.Donc la seule façon de le faire est de réécrire votre requête à quelque chose comme:
En supposant que vous avez la clé primaire
id
colonneUPD: vous avez besoin de mettre en œuvre le double de nidification pour tromper mysql, car il ne permet pas de choisir à partir en cours de modification, table (merci à Martin Smith)
DELETE
accepterowcount
seulement pourLIMIT
.IN
vous obtenez l'erreur "Vous ne pouvez pas spécifier une table cible 'chat_messages" pour la mise à jour DE l'article". Vous pouvez le contourner en faisant de la sous-requête d'une table dérivée.