Maison > base de données > tutoriel mysql > Comment puis-je utiliser la clause LIMIT de MySQL pour mettre à jour un nombre ou une plage de lignes spécifique ?

Comment puis-je utiliser la clause LIMIT de MySQL pour mettre à jour un nombre ou une plage de lignes spécifique ?

DDD
Libérer: 2024-12-31 21:56:17
original
739 Les gens l'ont consulté

How Can I Use MySQL's LIMIT Clause to Update a Specific Number or Range of Rows?

MySQL : Clause limite pour les mises à jour multi-lignes

Dans MySQL, la clause LIMIT est couramment utilisée pour limiter le nombre de lignes sélectionnées dans un tableau. Cependant, il peut également être utilisé pour spécifier le nombre maximum de lignes à mettre à jour. Cependant, certaines contraintes doivent être prises en compte pour éviter les erreurs.

La requête fournie :

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

échoue car le deuxième paramètre de LIMIT spécifie le décalage, pas la limite. Par conséquent, la requête demande à MySQL de mettre à jour les lignes après la 10ème ligne (ignorez les 5 premières lignes, puis appliquez le décalage de 5).

Pour résoudre ce problème, utilisez la requête suivante :

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

Cette requête met correctement à jour les 5 premières lignes.

Si vous souhaitez mettre à jour une plage spécifique de lignes, comme la 6ème à 10ème, vous pouvez utiliser une sous-requête :

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

Cette requête utilise une sous-requête pour sélectionner les ID des lignes dans la plage spécifiée. Ensuite, la requête principale met à jour ces lignes en conséquence.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal