In diesem Artikel werden hauptsächlich die relevanten Informationen zu MySQL vorgestellt. Detaillierte Erläuterungen zu doppelten Dateninstanzen. Freunde in Not können sich auf
MySQL Detaillierte Erläuterungen zu doppelten Dateninstanzen beziehen
Es gibt zwei Bedeutungen von doppelten Datensätzen: Die eine ist ein vollständig doppelter Datensatz, d. h. alle Felder werden wiederholt, und die andere ist ein Datensatz, bei dem einige Felder wiederholt werden. Für die erste Art der Duplizierung ist es relativ einfach, das Schlüsselwort „distinct“ in der Anweisung query zu verwenden. Fast alle Datenbanksysteme unterstützen die Operation „distinct“. Der Hauptgrund für diese Duplizierung ist ein schlechtes Tabellendesign, das durch Hinzufügen eines Primärschlüssels oder einer eindeutigen Indexspalte zur Tabelle vermieden werden kann.
select distinct * from t;
Für die zweite Art von Duplikatproblemen ist es normalerweise erforderlich, jeden Datensatz unter den Duplikatdatensätzen abzufragen. Angenommen, Tabelle t enthält drei Felder: ID, Name und Adresse. Die ID ist der Primärschlüssel und die doppelten Felder sind Name und Adresse. Es ist erforderlich, einen eindeutigen Ergebnissatz dieser beiden Felder zu erhalten.
--Oracle, MySQL, korrelierte Unterabfrage verwenden
select * from t t1 where t1.id = (select min(t2.id) from t t2 where t1.name = t2.name and t1.address = t2.address);
--Hive unterstützt nur in der FROM-Klausel Verwenden Sie die Unterabfrage , die Unterabfrage muss einen Namen haben und die Spalte muss eindeutig sein
select t1.* from t t1, (select name, address, min(id) id from t group by name, address) t2 where t1.id = t2.id;
-- Sie können auch die row_number()-Analyse von hive verwendenFunktion
select t.id, t.name, t.address from (select id, name, address, row_number() over (distribute by name, address sort by id) as rn from t) t where t.rn=1;
Das obige ist der detaillierte Inhalt vonWie entferne ich doppelte Daten in MySQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!