Heim > Datenbank > MySQL-Tutorial > Wie lösche ich doppelte Zeilen aus einer Datenbanktabelle, ohne eine neue Tabelle zu erstellen?

Wie lösche ich doppelte Zeilen aus einer Datenbanktabelle, ohne eine neue Tabelle zu erstellen?

Susan Sarandon
Freigeben: 2024-12-26 22:39:16
Original
444 Leute haben es durchsucht

How to Delete Duplicate Rows from a Database Table Without Creating a New Table?

Doppelte Zeilen aus einer Tabelle löschen

Sie suchen nach einer Methode, um doppelte Zeilen aus einer Datenbanktabelle zu entfernen, ohne eine separate Tabelle zu erstellen. Betrachten Sie die folgende Tabelle:

id action L11_data
L1_name L1_data L11_data1
L2_name L2_data L11_data2
L3_name L3_data L11_data3
L4_name L4_data L11_data4
L5_name L5_data L11_data1
L6_name L6_data L11_data2
L7_name L7_data L11_data5
L8_name L8_data L11_data1
L9_name L9_data L11_data6
L10_name L10_data L11_data2
L11_name L11_data L11_data7
L12_name L12_data L11_data8
L13_name L13_data L11_data1
L14_name L14_data L11_data6
L15_name L15_data L11_data9

Vorhandene doppelte Zeilen

Wie Sie bereits erwähnt haben, enthält die Tabelle doppelte Werte in der Spalte L11_data innerhalb jeder Aktionsgruppe. Ihr Ziel besteht darin, nur die eindeutigen L11_data-Werte und die entsprechenden Daten für jede Aktion beizubehalten.

Lösung

Angenommen, die Tabelle verfügt über ein eindeutiges ID-Feld, können Sie Folgendes ausführen folgende Abfrage:

DELETE FROM Table
WHERE ID NOT IN
(
SELECT MIN(ID)
FROM Table
GROUP BY action, L11_data
)
Nach dem Login kopieren

Abfrage Aufschlüsselung

  • Die äußere DELETE-Anweisung löscht Zeilen aus der Tabelle.
  • Die verschachtelte SELECT-Anweisung identifiziert die Mindest-ID für jede eindeutige Kombination aus Aktion und L11_Daten.
  • Die WHERE-Klausel schließt Zeilen mit IDs aus, die nicht in der Liste der Mindest-IDs enthalten sind, und entfernt dadurch Duplikate Zeilen.

Hinweise

  • Die Abfrage wird langsam ausgeführt, wenn die Tabelle eine große Anzahl von Feldern und Zeilen enthält.
  • Wenn die Tabelle keinen eindeutigen Index hat, wird aus Leistungsgründen empfohlen, einen hinzuzufügen.

Das obige ist der detaillierte Inhalt vonWie lösche ich doppelte Zeilen aus einer Datenbanktabelle, ohne eine neue Tabelle zu erstellen?. 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