Heim > Datenbank > MySQL-Tutorial > Hauptteil

Wie lösche ich einen Zeilenbereich mit LIMIT in der MySQL-DELETE-Anweisung?

Barbara Streisand
Freigeben: 2024-10-28 04:41:02
Original
266 Leute haben es durchsucht

How to Delete a Range of Rows Using LIMIT in MySQL DELETE Statement?

Korrektur der Syntax für die MySQL-DELETE-Anweisung mit LIMIT

Beim Versuch, einen Zeilenbereich aus einer MySQL-Tabelle mithilfe einer DELETE-Anweisung mit zu löschen Wenn Sie eine LIMIT-Klausel verwenden, kann es zu einem Fehler kommen, wenn die Syntax falsch ist. Dieser Fehler weist normalerweise darauf hin, dass ein Problem mit der Syntax zur Angabe des Grenzwerts vorliegt.

Das Problem in der bereitgestellten Abfrage besteht darin, dass Sie in der LIMIT-Klausel einer DELETE-Anweisung keinen Offset angeben können. Die Syntax für die Verwendung der LIMIT-Klausel in einer DELETE-Anweisung lautet LIMIT , ohne Angabe eines Offsets oder eines Startpunkts.

Um dieses Problem zu beheben, müssen Sie Ihre Abfrage neu schreiben, um die zu bearbeitenden Zeilen anzugeben genauer gelöscht. Eine Möglichkeit, dies zu tun, besteht darin, die IN-Klausel zu verwenden, um die IDs der Zeilen auszuwählen, die Sie löschen möchten, und diese IDs dann zum Filtern der Zeilen in der DELETE-Anweisung zu verwenden.

Hier ist ein Beispiel dafür, wie Sie umschreiben können Ihre Abfrage:

<code class="sql">DELETE FROM `chat_messages` 
WHERE `id` IN (
    SELECT `id` FROM (
        SELECT `id` FROM `chat_messages`
        ORDER BY `timestamp` DESC
        LIMIT 20, 50
    ) AS `x`
)</code>
Nach dem Login kopieren

In dieser Abfrage verwenden wir zunächst eine Unterabfrage, um die IDs der Zeilen auszuwählen, die wir löschen möchten. Dann verwenden wir die IN-Klausel in der DELETE-Hauptanweisung, um die Zeilen basierend auf diesen IDs zu filtern, was zur Löschung des gewünschten Zeilenbereichs führt.

Es ist wichtig zu beachten, dass Sie möglicherweise Anpassungen vornehmen müssen Die Abfrage basiert auf der spezifischen Struktur Ihrer Tabelle und dem gewünschten Verhalten.

Das obige ist der detaillierte Inhalt vonWie lösche ich einen Zeilenbereich mit LIMIT in der MySQL-DELETE-Anweisung?. 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
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!