Heim >Datenbank >MySQL-Tutorial >Wie kann ich einen bestimmten Zeilenbereich in MySQL mithilfe einer LIMIT-Klausel aktualisieren?
MySQL: Abfrage zum Aktualisieren von Datensätzen mithilfe eines Limits
Bei der Arbeit mit MySQL kann es vorkommen, dass Sie auf Situationen stoßen, in denen Sie einen bestimmten Eintrag aktualisieren müssen Bereich von Zeilen in einer Tabelle. Dieser Artikel befasst sich mit der Frage, ob es möglich ist, eine LIMIT-Klausel in einer UPDATE-Abfrage zu verwenden, und bietet Anleitungen, wie dies erreicht werden kann.
Syntaxfehler und korrekte Verwendung
Bei Ihrer ersten Abfrage wurde versucht, Zeilen ab 1001 und die nächsten 1000 Datensätze zu aktualisieren. Allerdings ist die verwendete Syntax falsch. In MySQL wird die LIMIT-Klausel verwendet, um die Anzahl der ausgewählten Zeilen und nicht der aktualisierten Zeilen zu beschränken. Der richtige Weg, einen bestimmten Zeilenbereich zu aktualisieren, ist eine Unterabfrage.
Um beispielsweise die ersten 1000 Zeilen mit p_id auf 3 zu aktualisieren, würden Sie Folgendes verwenden:
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 )
Umgang mit NULL-Werten
In Ihrer zweiten Abfrage haben Sie versucht, Zeilen mit p_id zu aktualisieren auf NULL gesetzt. Die Abfrage würde jedoch fehlschlagen, da NULL-Werte bei einer Gleichheitsprüfung nicht mit Nicht-NULL-Werten verglichen werden können. Um Zeilen mit NULL-p_id-Werten zu aktualisieren, können Sie die Funktionen IS NULL und COALESCE() verwenden:
UPDATE `oltp_db`.`users` SET p_id = COALESCE(3, p_id) WHERE p_id IS NULL
Durch Befolgen dieser Richtlinien können Sie bestimmte Zeilen in Ihrer MySQL-Tabelle effektiv aktualisieren, selbst wenn es sich um NULL handelt Werte.
Das obige ist der detaillierte Inhalt vonWie kann ich einen bestimmten Zeilenbereich in MySQL mithilfe einer LIMIT-Klausel aktualisieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!