Heim >Datenbank >MySQL-Tutorial >Wie kann ich einen bestimmten Zeilenbereich in MySQL mithilfe einer LIMIT-Klausel aktualisieren?

Wie kann ich einen bestimmten Zeilenbereich in MySQL mithilfe einer LIMIT-Klausel aktualisieren?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-30 15:17:11557Durchsuche

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

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn