SQL findet alle doppelten Datensätze in einer Tabelle 1. Die Tabelle enthält zwei Felder: ID und Name. Suchen Sie alle Daten mit doppeltem Namen. select * from xi a where (a.username) in (wählen Sie Benutzernamen aus der xi-Gruppe nach Benutzernamen mit count(*) > 1) 2. Nachdem alle Daten gefunden und gruppiert wurden, werden zuerst die Abfragedaten der Anzahl der Wiederholungen der wiederholten Daten aufgelistet: select count(username) as 'Anzahl der Wiederholungen',username from xi group by username having count(*)>1 order by username desc 3. Um die Ergebnisse anderer Personen anzuzeigen, finden Sie hier die Methoden zum Abfragen und Löschen doppelter Datensätze: 1. Suchen Sie in der Tabelle nach redundanten doppelten Datensätzen. Doppelte Datensätze werden anhand eines einzigen Felds (peopleId) ermittelt. Wählen Sie * aus Personen aus wobei peopleId in (wählen Sie peopleId aus der Personengruppe nach peopleId mit count(peopleId) > 1) 2. Löschen Sie redundante doppelte Datensätze in der Tabelle. Doppelte Datensätze werden anhand eines einzelnen Felds (peopleId) ermittelt. Nur der Datensatz mit der kleinsten Zeilen-ID wird beibehalten. aus Personen löschen wobei peopleId in (wählen Sie peopleId aus der Personengruppe nach peopleId mit count(peopleId) > 1) und Rowid nicht in (wählen Sie min(Rowid) aus der Personengruppe nach PeopleId mit count(peopleId)>1) 3. Suchen Sie nach redundanten doppelten Datensätzen in der Tabelle (mehrere Felder). Wählen Sie * aus Lebenslauf a wobei (a.peopleId,a.seq) in (wähle peopleId,seq aus der Vitae-Gruppe nach peopleId,seq mit count(*) > 1) 4. Löschen Sie redundante doppelte Datensätze (mehrere Felder) in der Tabelle und lassen Sie nur den Datensatz mit der kleinsten Zeilen-ID übrig aus dem Lebenslauf löschen a wobei (a.peopleId,a.seq) in (wähle peopleId,seq aus der Vitae-Gruppe nach peopleId,seq mit count(*) > 1) und rowid nicht in (select min(rowid) aus vitae-Gruppe nach peopleId,seq mit count(*)>1) 5. Suchen Sie redundante doppelte Datensätze (mehrere Felder) in der Tabelle, ausgenommen den Datensatz mit der kleinsten Zeilen-ID Wählen Sie * aus Lebenslauf a wobei (a.peopleId,a.seq) in (wähle peopleId,seq aus der Vitae-Gruppe nach peopleId,seq mit count(*) > 1) und rowid nicht in (select min(rowid) aus vitae-Gruppe nach peopleId,seq mit count(*)>1) (zwei) Zum Beispiel In Tabelle A gibt es ein Feld „Name“. Und der „Name“-Wert kann in verschiedenen Datensätzen derselbe sein. Jetzt müssen wir unter den Datensätzen in der Tabelle die Elemente mit doppelten „Name“-Werten herausfinden. Wählen Sie Name,Anzahl(*) aus einer Gruppe nach Namen mit Anzahl(*) > 1 aus. Bei gleichem Geschlecht ergeben sich folgende Ergebnisse: Wählen Sie Name, Geschlecht, Anzahl(*) aus einer Gruppe nach Name, Geschlecht mit Anzahl(*) > 1 (drei) Methode 1 Deklarieren Sie @max Integer, @id Integer Deklarieren Sie cur_rows Cursor lokal für Wählen Sie das Primärfeld „Anzahl(*)“ aus der Tabellennamengruppe nach dem Primärfeld mit „Anzahl(*)“ >; öffne cur_rows, hole cur_rows in @id,@max, während @@fetch_status=0 beginnen wähle @max = @max -1 Zeilenanzahl @max festlegen Löschen aus Tabellenname, wobei primäres Feld = @id hole cur_rows in @id,@maxend Schließen Sie cur_rows setze Zeilenanzahl auf 0 Methode 2: Es gibt zwei Bedeutungen von doppelten Datensätzen: Eine sind vollständig doppelte Datensätze, das heißt Datensätze, bei denen alle Felder wiederholt werden; die andere sind Datensätze, bei denen einige Schlüsselfelder wiederholt werden, z. B. das Feld „Name“, während andere Felder möglicherweise nicht wiederholt werden oder alle Wiederholungen ignoriert werden können. 1. Für die erste Art der Wiederholung ist es einfacher zu lösen. Verwenden Sie Wählen Sie ein eindeutiges * aus Tabellenname aus. Sie können einen Ergebnissatz ohne doppelte Datensätze erhalten. Wenn die Tabelle doppelte Datensätze löschen muss (nur einen doppelten Datensatz behalten), So können Sie es löschen Wählen Sie ein eindeutiges * in #Tmp aus Tabellenname aus. Tabelle Tabellenname löschen Wählen Sie * in Tabellenname aus #Tmp Tabelle löschen #Tmp Diese Duplizierung tritt aufgrund eines schlechten Tabellendesigns auf und kann durch das Hinzufügen einer eindeutigen Indexspalte behoben werden. 2. Bei dieser Art von Duplizierungsproblem muss normalerweise der erste Datensatz der doppelten Datensätze beibehalten werden. Die Vorgehensweise ist wie folgt: Angenommen, die doppelten Felder sind Name und Adresse, und Sie müssen für diese beiden Felder einen eindeutigen Ergebnissatz erhalten. Wählen Sie Identität (int, 1,1) als Auto-ID, * in #Tmp aus Tabellenname Wählen Sie min(autoID) als AutoID in #Tmp2 aus der #Tmp-Gruppe nach Name, AutoID wähle * aus #Tmp, wobei autoID in (wähle autoID aus #tmp2) ist Die letzte Auswahl gibt einen Ergebnissatz mit eindeutigem Namen und Adresse zurück (aber mit einem zusätzlichen AutoID-Feld, das beim Schreiben in der Select-Klausel weggelassen werden kann). (IV) Doppelte Abfrage Wählen Sie * aus Tabellenname, wobei die ID in (Wählen Sie die ID aus der Tabellennamengruppe nach ID mit count(id) > 1) Suchen nach doppelten Datensätzen für ein Feld Suchen Sie nach doppelten Datensätzen basierend auf dem Feld „sample_code“ SELECT * FROM tb_table WHERE Beispielcode IN( SELECT Beispielcode FROM tb_table GROUP BY Beispielcode HAVING COUNT(Beispielcode) > 1 ); Suchen Sie nach doppelten Datensätzen für mehrere Felder (hier nehmen wir 2 als Beispiel) Suchen Sie nach doppelten Datensätzen basierend auf den Namens- und Codefeldern SELECT * from (SELECT *, CONCAT(name,code) as nameAndCode from tb_table) t WHERE t.nameAndCode in ( SELECT Name und Code aus (SELECT CONCAT(Name, Code) als Name und Code aus tb_table) tt GROUP BY Name und Code HAVING Anzahl(Name und Code) > 1 ) Zusammenfassen Oben ist die MySQL SQL-Anweisung, die ich Ihnen vorgestellt habe, um doppelte Daten basierend auf einem oder mehreren Feldern zu finden. Ich hoffe, sie wird Ihnen hilfreich sein. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und ich werde Ihnen rechtzeitig antworten. Ich möchte auch allen für ihre Unterstützung der Website 123WORDPRESS.COM danken! Das könnte Sie auch interessieren:
|
>>: js zur Realisierung der automatischen Sperrbildschirmfunktion
Nun, vielleicht sind Sie ein Design-Guru, oder vie...
In diesem Artikel finden Sie das Installations-Tu...
In diesem Artikel wird die Verwendung von Docker ...
Ich habe Vue.js verwendet, um ein Bildanzeigemodu...
Als technischer Neuling zeichne ich den Vorgang d...
In diesem Artikel wird der spezifische Code von j...
Inhaltsverzeichnis vue2.x vue3.x Verwendung des T...
In Front-End-Projekten ist das Hochladen von Anhä...
Vorwort Was ist eine langsame Abfrage und wie kan...
Code <div Klasse="Test"> <div&...
Hauptsächlich für Browser mit niedriger Version &l...
Heute musste ich nach dem Neustart des Spiels fes...
<br />Dieser Abschnitt stellt die Implementi...
Der Hyperlink-Tag stellt einen Linkpunkt dar und ...
Es gibt im Internet viele Artikel zur MySQL-Insta...