Maison > base de données > tutoriel mysql > Comment mettre à jour correctement une plage spécifique de lignes dans MySQL à l'aide de LIMIT ?

Comment mettre à jour correctement une plage spécifique de lignes dans MySQL à l'aide de LIMIT ?

Patricia Arquette
Libérer: 2024-12-31 12:03:08
original
357 Les gens l'ont consulté

How to Correctly Update a Specific Range of Rows in MySQL Using LIMIT?

MySQL : Utiliser LIMIT pour mettre à jour plusieurs lignes

Dans MySQL, la clause LIMIT permet de restreindre le nombre de lignes affectées par une requête . Cependant, lors de l'utilisation de LIMIT avec l'instruction UPDATE, une erreur courante se produit lors de la tentative de mise à jour d'une plage spécifique de lignes.

Considérez la requête suivante :

UPDATE messages SET test_read=1 
WHERE userid='xyz' 
ORDER BY date_added DESC  
LIMIT 5, 5;
Copier après la connexion

Cette requête vise à mettre à jour cinq lignes, à partir de la cinquième ligne, dans le tableau "messages" où "userid" est égal à "xyz". Cependant, cette requête entraînera une erreur.

Pour comprendre pourquoi, il est important de noter que la clause LIMIT dans ce contexte définit un décalage et un nombre maximum de lignes. Dans cet exemple, il récupère et limite le nombre de lignes affichées plutôt que de les mettre à jour. Pour mettre à jour une plage spécifique de lignes, une sous-requête peut être utilisée à la place :

UPDATE messages SET test_read=1
WHERE id IN (
    SELECT id FROM (
        SELECT id FROM messages 
        ORDER BY date_added DESC  
        LIMIT 5, 5
    ) tmp
);
Copier après la connexion

Dans cette requête modifiée, une sous-requête est utilisée pour sélectionner les ID des cinq lignes qui doivent être mises à jour. L'instruction principale UPDATE fait ensuite correspondre ces identifiants et effectue la mise à jour. Cela garantit que seules les lignes souhaitées sont modifiées.

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