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

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