Mise à jour des lignes avec limite dans MySQL
Dans MySQL, l'utilisation de la clause LIMIT dans une requête UPDATE peut prêter à confusion. Ici, nous fournissons une explication détaillée de son utilisation et abordons les questions connexes.
Requête avec LIMIT
Pour mettre à jour les lignes dans une plage spécifique, vous pouvez utiliser la syntaxe suivante :
UPDATE table_name SET column_name = value WHERE id IN ( SELECT id FROM ( SELECT id FROM table_name ORDER BY id ASC LIMIT start_row, row_count ) tmp )
Par exemple, pour mettre à jour les lignes de 1001 à 1100, use :
UPDATE table_name SET p_id = 3 WHERE id IN ( SELECT id FROM ( SELECT id FROM table_name ORDER BY id ASC LIMIT 1001, 1000 ) tmp )
Requête invalide
La requête que vous avez fournie (UPDATE oltp_db.users SET p_id = 3 LIMIT 1001, 1000) n'est pas valide car LIMIT ne peut pas être utilisé directement dans une instruction UPDATE. Il doit être appliqué dans une sous-requête comme indiqué ci-dessus.
Mise à jour des valeurs nulles
Si la colonne p_id contient des valeurs NULL, la requête suivante ne fonctionnera pas :
UPDATE `oltp_db`.`users` SET p_id = 3 WHERE p_id = null
Pour mettre à jour les valeurs NULL, vous pouvez utiliser la condition IS NULL :
UPDATE `oltp_db`.`users` SET p_id = 3 WHERE p_id IS NULL
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!