Heim > Datenbank > MySQL-Tutorial > Wie lösche ich nicht eindeutige Zeilen in MySQL 5.0 effizient?

Wie lösche ich nicht eindeutige Zeilen in MySQL 5.0 effizient?

Mary-Kate Olsen
Freigeben: 2024-12-27 11:01:08
Original
605 Leute haben es durchsucht

How to Efficiently Delete Non-Unique Rows in MySQL 5.0?

Löschen nicht eindeutiger Zeilen in MySQL mithilfe einer Select-Anweisung

Die bereitgestellte Abfragesyntax

DELETE FROM posts where> versucht dies Löschen Sie Zeilen, die keine eindeutigen IDs haben, aus der Beitragstabelle. Diese Syntax ist jedoch nicht mit MySQL 5.0 kompatibel.</p>
<p><strong>Umschreiben der Abfrage</strong></p>
<p>Um die Abfrage mit MySQL 5.0 kompatibel zu machen, sollte sie wie folgt umgeschrieben werden:</p> <p>`<pre class="brush:php;toolbar:false">DELETE FROM posts WHERE id IN (</p>
<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">SELECT id FROM posts GROUP BY id HAVING ( COUNT(id) > 1 )
Nach dem Login kopieren

)
`

Die überarbeitete Abfrage verstehen

Die überarbeitete Abfrage verwendet den IN-Operator, um Vergleichen Sie die ID-Spalte der Posts-Tabelle mit der Ergebnismenge der Unterabfrage. Die Unterabfrage ruft die IDs von Zeilen ab, die mehr als einmal in der Beitragstabelle vorkommen, was auf nicht eindeutige IDs hinweist. Durch die Verwendung des IN-Operators wählt die Abfrage nur die Zeilen mit nicht eindeutigen IDs zum Löschen aus.

Zusätzliche Überlegungen

Wie in der Antwortreferenz erwähnt, ist dies unerlässlich Beachten Sie, dass MySQL das Ändern derselben Tabelle aus einer Unterabfrage innerhalb derselben Abfrage nicht zulässt. Um diese Einschränkung zu umgehen, kann die Abfrage in zwei separate Abfragen aufgeteilt werden: eine SELECT-Abfrage zur Identifizierung der zu löschenden Zeilen, gefolgt von einer DELETE-Abfrage zum Ausführen des Löschvorgangs. Alternativ kann eine verschachtelte Unterabfrage mit einem Alias ​​verwendet werden, um das Löschen innerhalb einer einzelnen Abfrage zu ermöglichen.

Das obige ist der detaillierte Inhalt vonWie lösche ich nicht eindeutige Zeilen in MySQL 5.0 effizient?. 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 Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage