Heim >Datenbank >MySQL-Tutorial >Wie kann ich die LIMIT-Klausel von MySQL verwenden, um eine bestimmte Anzahl oder einen bestimmten Zeilenbereich zu aktualisieren?

Wie kann ich die LIMIT-Klausel von MySQL verwenden, um eine bestimmte Anzahl oder einen bestimmten Zeilenbereich zu aktualisieren?

DDD
DDDOriginal
2024-12-31 21:56:17745Durchsuche

How Can I Use MySQL's LIMIT Clause to Update a Specific Number or Range of Rows?

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!

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