Heim > Datenbank > MySQL-Tutorial > Wie aktualisiere ich einen bestimmten Zeilenbereich in MySQL mithilfe von LIMIT korrekt?

Wie aktualisiere ich einen bestimmten Zeilenbereich in MySQL mithilfe von LIMIT korrekt?

Patricia Arquette
Freigeben: 2024-12-31 12:03:08
Original
306 Leute haben es durchsucht

How to Correctly Update a Specific Range of Rows in MySQL Using LIMIT?

MySQL: Verwenden von LIMIT zum Aktualisieren mehrerer Zeilen

In MySQL können Sie mit der LIMIT-Klausel die Anzahl der von einer Abfrage betroffenen Zeilen einschränken . Bei der Verwendung von LIMIT mit der UPDATE-Anweisung tritt jedoch ein häufiger Fehler auf, wenn versucht wird, einen bestimmten Zeilenbereich zu aktualisieren.

Betrachten Sie die folgende Abfrage:

UPDATE messages SET test_read=1 
WHERE userid='xyz' 
ORDER BY date_added DESC  
LIMIT 5, 5;
Nach dem Login kopieren

Diese Abfrage zielt darauf ab, fünf zu aktualisieren Zeilen, beginnend mit der fünften Zeile, in der Tabelle „Nachrichten“, wobei „Benutzer-ID“ gleich „xyz“ ist. Diese Abfrage führt jedoch zu einem Fehler.

Um zu verstehen, warum, ist es wichtig zu beachten, dass die LIMIT-Klausel in diesem Kontext einen Offset und eine maximale Anzahl von Zeilen definiert. In diesem Beispiel wird die Anzahl der angezeigten Zeilen abgerufen und begrenzt, anstatt sie zu aktualisieren. Um einen bestimmten Zeilenbereich zu aktualisieren, kann stattdessen eine Unterabfrage verwendet werden:

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
);
Nach dem Login kopieren

In dieser modifizierten Abfrage wird eine Unterabfrage verwendet, um die IDs der fünf Zeilen auszuwählen, die aktualisiert werden müssen. Die Haupt-UPDATE-Anweisung gleicht dann diese IDs ab und führt die Aktualisierung durch. Dadurch wird sichergestellt, dass nur die gewünschten Zeilen geändert werden.

Das obige ist der detaillierte Inhalt vonWie aktualisiere ich einen bestimmten Zeilenbereich in MySQL mithilfe von LIMIT korrekt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage