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
630 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!

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