Frage:
Wie lösche ich Zeilen aus einer MySQL-Tabelle basierend auf die Ergebnisse einer Select-Anweisung?
Code (MySQL 5.0):
DELETE FROM posts where>
Problem:
Der obige Code funktioniert in MySQL 5.0 nicht und Sie möchten eine funktionierende Lösung finden. Ihr Ziel ist es, Zeilen zu löschen, die keine eindeutigen IDs haben.
Antwort:
Verwendung von IN:
In MySQL Unterabfragen geben Ergebnismengen zurück. Um die Ergebnisse einer Unterabfrage in einer DELETE-Anweisung zu verwenden, sollten Sie in Ihrer WHERE-Klausel den IN-Operator anstelle des Gleichheitszeichens (=) verwenden.
Geänderter Code:
DELETE FROM posts WHERE id IN ( SELECT id FROM posts GROUP BY id HAVING ( COUNT(id) > 1 ) )
Zusätzliche Überlegungen:
DELETE FROM posts p1 WHERE p1.id = ( SELECT p2.id FROM posts p2 WHERE p2.id = p1.id GROUP BY p2.id HAVING COUNT(p2.id) > 1 )
Das obige ist der detaillierte Inhalt vonWie lösche ich Zeilen aus einer MySQL-Tabelle basierend auf den Ergebnissen einer Select-Anweisung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!