Maison > base de données > tutoriel mysql > Comment supprimer une plage spécifique de lignes dans MySQL à l'aide de la clause LIMIT ?

Comment supprimer une plage spécifique de lignes dans MySQL à l'aide de la clause LIMIT ?

Mary-Kate Olsen
Libérer: 2024-10-25 13:58:30
original
401 Les gens l'ont consulté

How to Delete a Specific Range of Rows in MySQL Using LIMIT Clause?

Instruction MySQL DELETE avec limite

Un utilisateur rencontre une erreur en essayant de supprimer des lignes d'une table à l'aide de la requête suivante :

DELETE FROM `chat_messages` ORDER BY `timestamp` DESC LIMIT 20, 50;
Copier après la connexion

Le message d'erreur indique que la syntaxe est incorrecte.

Explication

L'erreur se produit car l'instruction DELETE utilisée ici inclut un décalage dans le LIMIT clause. Ceci n'est pas autorisé dans MySQL. La clause LIMIT ne peut spécifier que le nombre de lignes à supprimer.

Solution

Pour supprimer une plage spécifiée de lignes d'une table, vous ne pouvez pas utiliser la fonction de décalage dans la clause LIMIT. Au lieu de cela, vous devez utiliser une sous-requête pour sélectionner les lignes à supprimer, puis les supprimer à l'aide de leurs valeurs de clé primaire.

La requête suivante peut être utilisée dans ce scénario :

DELETE FROM `chat_messages`
WHERE `id` IN (
    SELECT `id` FROM (
        SELECT `id` FROM `chat_messages`
        ORDER BY `timestamp` DESC
        LIMIT 20, 50
    ) AS `x`
)
Copier après la connexion

Cette requête utilise une double imbrication pour sélectionner les lignes à supprimer et contourner les limitations de MySQL.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal