MySQL – UPDATE-Abfrage mit LIMIT
Dieser Artikel befasst sich mit den Herausforderungen, die beim Versuch auftreten, bestimmte Zeilen über eine LIMIT-Klausel in einer MySQL-Datenbank zu aktualisieren . Das Ziel besteht darin, Zeilen innerhalb eines angegebenen Bereichs von Zeilen-IDs zu aktualisieren.
Syntaxfehler und korrekte Abfrage
Die von Ihnen bereitgestellte Abfrage „UPDATE oltp_db.users SET p_id = 3 LIMIT 1001, 1000", ist syntaktisch falsch. Die korrekte Syntax für die Verwendung von LIMIT in einer UPDATE-Abfrage besteht darin, eine Startzeilennummer (Offset) und eine Anzahl der zu aktualisierenden Zeilen anzugeben. Die richtige Abfrage sollte lauten:
UPDATE `oltp_db`.`users` SET p_id = 3 LIMIT 1001, 1000;
Zeilen mit NULL-Werten aktualisieren
Ihre Abfrage „UPDATE oltp_db.users SET p_id = 3 WHERE p_id = null“, ist auch falsch. Der Gleichheitsoperator „=" kann nicht mit dem NULL-Wert verwendet werden. Um Zeilen mit NULL-Werten zu aktualisieren, verwenden Sie den Operator IS NULL wie folgt:
UPDATE `oltp_db`.`users` SET p_id = 3 WHERE p_id IS NULL;
Aktualisieren mehrerer Zeilen mit LIMIT
Um die Anzahl der aktualisierten Zeilen zu begrenzen, verwenden Sie eine Unterabfrage zum Auswählen eines bestimmten Bereichs von Zeilen-IDs, wie in der folgenden Abfrage gezeigt:
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 )
Diese Abfrage aktualisiert Zeilen mit Die Spalte „Name“ ist auf „Test“ gesetzt, wobei die Zeilen-IDs in den angegebenen Bereich fallen. Die innere Unterabfrage wählt die ersten 10 Zeilen-IDs aus der Tabelle aus, die dann in der IN-Klausel der äußeren Aktualisierungsabfrage verwendet werden.
Das obige ist der detaillierte Inhalt vonWie kann ich mit LIMIT eine bestimmte Anzahl von Zeilen in MySQL korrekt aktualisieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!