Heim >Datenbank >MySQL-Tutorial >Wie kann ich die LIMIT-Klausel von MySQL verwenden, um eine bestimmte Anzahl oder einen bestimmten Zeilenbereich zu aktualisieren?
MySQL: Limit-Klausel für mehrzeilige Aktualisierungen
In MySQL wird die LIMIT-Klausel häufig verwendet, um die Anzahl der ausgewählten Zeilen zu begrenzen ein Tisch. Es kann jedoch auch verwendet werden, um die maximale Anzahl der zu aktualisierenden Zeilen festzulegen. Allerdings müssen bestimmte Einschränkungen berücksichtigt werden, um Fehler zu verhindern.
Die bereitgestellte Abfrage:
UPDATE messages set test_read =1 WHERE userid='xyz' ORDER BY date_added DESC LIMIT 5, 5 ;
schlägt fehl, da der zweite Parameter von LIMIT den Offset und nicht den Grenzwert angibt. Daher fordert die Abfrage MySQL auf, Zeilen nach der 10. Zeile zu aktualisieren (überspringen Sie die ersten 5 Zeilen und wenden Sie dann den Offset von 5 an).
Um dieses Problem zu beheben, verwenden Sie die folgende Abfrage:
UPDATE messages set test_read =1 WHERE userid='xyz' ORDER BY date_added DESC LIMIT 5 ;
Diese Abfrage aktualisiert die ersten 5 Zeilen korrekt.
Wenn Sie einen bestimmten Zeilenbereich aktualisieren möchten, z. B. den 6. bis 10. Sie können eine Unterabfrage verwenden:
UPDATE messages SET test_read=1 WHERE id IN ( SELECT id FROM ( SELECT id FROM messages ORDER BY date_added DESC LIMIT 5, 5 ) tmp );
Diese Abfrage verwendet eine Unterabfrage, um die IDs der Zeilen im angegebenen Bereich auszuwählen. Anschließend aktualisiert die Hauptabfrage diese Zeilen entsprechend.
Das obige ist der detaillierte Inhalt vonWie kann ich die LIMIT-Klausel von MySQL verwenden, um eine bestimmte Anzahl oder einen bestimmten Zeilenbereich zu aktualisieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!