Heim >Datenbank >MySQL-Tutorial >Wie aktualisiere ich eine bestimmte Anzahl von Zeilen in MySQL mit LIMIT?
Mehrere Zeilen mit LIMIT in MySQL aktualisieren
Sie versuchen, eine bestimmte Anzahl von Zeilen mithilfe einer LIMIT-Klausel in einer MySQL-Abfrage zu aktualisieren. aber es ist ein Fehler aufgetreten. Lassen Sie uns verstehen, warum Ihre erste Abfrage möglicherweise fehlgeschlagen ist und wie Sie das Problem beheben können.
UPDATE messages set test_read =1 WHERE userid='xyz' ORDER BY date_added DESC LIMIT 5, 5 ;
Die obige Abfrage ist ungültig, da LIMIT eine positive Ganzzahl erwartet, die den Offset vom Anfang des Ergebnissatzes darstellt, und dann die Anzahl der zu aktualisierenden Zeilen. In Ihrer Abfrage haben Sie sowohl einen Offset (5) als auch einen Grenzwert (5) angegeben, was falsch ist.
Um eine bestimmte Anzahl von Zeilen ausgehend von einem Offset zu aktualisieren, können Sie eine Unterabfrage verwenden, um die auszuwählen Wählen Sie die zu aktualisierenden Zeilen aus und aktualisieren Sie sie anschließend. Hier ist eine überarbeitete Abfrage:
UPDATE messages SET test_read=1 WHERE id IN ( SELECT id FROM ( SELECT id FROM messages ORDER BY date_added DESC LIMIT 5 ) tmp );
In dieser Abfrage wird eine Unterabfrage verwendet, um die IDs der zu aktualisierenden Zeilen auszuwählen, beginnend mit der 5. Zeile in absteigender Reihenfolge der Spalte „date_added“. Die Hauptabfrage verwendet dann die IN-Klausel, um nur diese spezifischen Zeilen zu aktualisieren.
Das obige ist der detaillierte Inhalt vonWie aktualisiere ich eine bestimmte Anzahl von Zeilen in MySQL mit LIMIT?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!