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

Comment mettre à jour un nombre spécifique de lignes dans MySQL à l'aide de LIMIT ?

Mary-Kate Olsen
Libérer: 2025-01-02 14:36:44
original
671 Les gens l'ont consulté

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

Mettre à jour plusieurs lignes avec LIMIT dans MySQL

Vous essayez de mettre à jour un nombre spécifique de lignes à l'aide d'une clause LIMIT dans une requête MySQL, mais rencontrant une erreur. Comprenons pourquoi votre requête initiale a pu échouer et comment y remédier.

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

La requête ci-dessus n'est pas valide car LIMIT attend un entier positif représentant le décalage depuis le début de l'ensemble de résultats, puis le nombre de lignes à mettre à jour. Dans votre requête, vous avez spécifié à la fois un décalage (5) et une limite (5), ce qui est incorrect.

Pour mettre à jour un nombre spécifique de lignes à partir d'un décalage, vous pouvez utiliser une sous-requête pour sélectionner le lignes à mettre à jour, puis mettez-les à jour. Voici une requête révisée :

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

Dans cette requête, une sous-requête est utilisée pour sélectionner les ID des lignes à mettre à jour, en commençant par la 5ème ligne par ordre décroissant de la colonne date_added. La requête principale utilise ensuite la clause IN pour mettre à jour uniquement ces lignes spécifiques.

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!

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