Maison > base de données > tutoriel mysql > Comment puis-je mettre à jour une plage spécifique de lignes dans MySQL à l'aide d'une clause LIMIT ?

Comment puis-je mettre à jour une plage spécifique de lignes dans MySQL à l'aide d'une clause LIMIT ?

Patricia Arquette
Libérer: 2024-11-30 15:17:11
original
550 Les gens l'ont consulté

How Can I Update a Specific Range of Rows in MySQL Using a LIMIT Clause?

MySQL : requête de mise à jour des enregistrements à l'aide d'une limite

Lorsque vous travaillez avec MySQL, il est possible de rencontrer des scénarios dans lesquels vous devez mettre à jour un élément spécifique plage de lignes dans un tableau. Cet article aborde la question de savoir s'il est possible d'utiliser une clause LIMIT dans une requête UPDATE et fournit des conseils sur la façon d'y parvenir.

Erreur de syntaxe et utilisation correcte

Votre requête initiale a tenté de mettre à jour les lignes commençant par 1 001 et les 1 000 enregistrements suivants. Cependant, la syntaxe utilisée est incorrecte. Dans MySQL, la clause LIMIT est utilisée pour limiter le nombre de lignes sélectionnées, et non les lignes mises à jour. La bonne façon de mettre à jour une plage spécifique de lignes consiste à utiliser une sous-requête.

Par exemple, pour mettre à jour les 1 000 premières lignes avec p_id défini sur 3, vous utiliserez ce qui suit :

UPDATE `oltp_db`.`users` SET p_id = 3
WHERE id IN (
    SELECT id FROM (
        SELECT id FROM `oltp_db`.`users` 
        ORDER BY id ASC  
        LIMIT 0, 1000
    ) tmp
)
Copier après la connexion

Gestion des valeurs NULL

Dans votre deuxième requête, vous avez tenté de mettre à jour les lignes avec p_id défini à NULL. Toutefois, la requête échouerait car les valeurs NULL ne peuvent pas être comparées à des valeurs non NULL lors d’une vérification d’égalité. Pour mettre à jour les lignes avec des valeurs NULL p_id, vous pouvez utiliser les fonctions IS NULL et COALESCE() :

UPDATE `oltp_db`.`users` SET p_id = COALESCE(3, p_id)
WHERE p_id IS NULL
Copier après la connexion

En suivant ces directives, vous pouvez mettre à jour efficacement des lignes spécifiques de votre table MySQL, même lorsque vous traitez avec NULL. valeurs.

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