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

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

DDD
Libérer: 2024-12-05 06:20:10
original
249 Les gens l'ont consulté

How Can I Correctly Update a Specific Number of Rows in MySQL Using LIMIT?

MySQL - Requête UPDATE avec LIMIT

Cet article aborde les défis rencontrés lors de la tentative de mise à jour de lignes spécifiques via une clause LIMIT dans une base de données MySQL . L'objectif est de mettre à jour les lignes dans une plage spécifiée d'ID de ligne.

Erreur de syntaxe et requête correcte

La requête que vous avez fournie, "UPDATE oltp_db.users SET p_id = 3 LIMIT 1001, 1000", est syntaxiquement incorrect. La syntaxe correcte pour utiliser LIMIT dans une requête UPDATE consiste à spécifier un numéro de ligne de départ (décalage) et un nombre de lignes à mettre à jour. La requête correcte doit être :

UPDATE `oltp_db`.`users` SET p_id = 3 LIMIT 1001, 1000;
Copier après la connexion

Mise à jour des lignes avec des valeurs NULL

Votre requête, "UPDATE oltp_db.users SET p_id = 3 WHERE p_id = null", est également incorrect. L'opérateur d'égalité "=" ne peut pas être utilisé avec la valeur NULL. Pour mettre à jour les lignes avec des valeurs NULL, utilisez l'opérateur IS NULL comme suit :

UPDATE `oltp_db`.`users` SET p_id = 3 WHERE p_id IS NULL;
Copier après la connexion

Mise à jour de plusieurs lignes à l'aide de LIMIT

Pour limiter le nombre de lignes mises à jour, utilisez une sous-requête pour sélectionner une plage spécifique d'ID de ligne, comme illustré dans la requête suivante :

UPDATE table_name SET name='test'
WHERE id IN (
    SELECT id FROM (
        SELECT id FROM table_name 
        ORDER BY id ASC  
        LIMIT 0, 10
    ) tmp
)
Copier après la connexion

Cette requête met à jour les lignes avec la colonne « nom » définie sur « test » où les ID de ligne se situent dans la plage spécifiée. La sous-requête interne sélectionne les 10 premiers ID de ligne de la table, qui sont ensuite utilisés dans la clause IN de la requête de mise à jour externe.

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