Heim  >  Artikel  >  Datenbank  >  Detaillierte Beispiele für zwei Methoden zur Deduplizierung in MySQL

Detaillierte Beispiele für zwei Methoden zur Deduplizierung in MySQL

怪我咯
怪我咯Original
2017-07-05 11:08:182605Durchsuche

In diesem Artikel werden hauptsächlich die beiden Deduplizierungsmethoden in MySQL und die zugehörigen Informationen im Beispielcode vorgestellt. Hier finden Sie eine detaillierte Erklärung der beiden Deduplizierungsmethoden Wenn Sie es benötigen, können Sie darauf verweisen 🎜> in

ist es manchmal notwendig, eine

Abfrage durchzuführen, um nicht doppelte Datensätze in einem bestimmten Feld zu finden. Obwohl MySQL das Schlüsselwort „distinct“ bereitstellt, um redundante doppelte Datensätze herauszufiltern und nur einen zu behalten, ist dies häufig der Fall Wird nur verwendet, um nicht doppelte Datensätze zurückzugeben, anstatt alle Werte ohne doppelte Datensätze zurückzugeben. Der Grund dafür ist, dass „distinct“ nur sein Zielfeld zurückgeben kann, aber keine anderen

Felder

. Schauen wir uns zunächst ein Beispiel an:

Bibliotheksstruktur Wahrscheinlich so, dies ist nur ein einfaches Beispiel, die tatsächliche Situation wird viel komplizierter sein. Wenn ich beispielsweise eine Anweisung verwenden möchte, um alle Daten mit nicht doppelten Namen abzufragen, muss ich „distinct“ verwenden, um redundante doppelte Datensätze zu entfernen. Das erhaltene Ergebnis ist:

Es scheint den Effekt erzielt zu haben, aber was ich erhalten möchte, ist der ID-Wert? Ändern Sie die Abfrageanweisung:

   table
  id name
  1 a
  2 b
  3 c
  4 c
  5 b

Das Ergebnis wird sein:

Warum funktioniert „Difference“ nicht? Es funktioniert, wirkt sich jedoch auf zwei Felder gleichzeitig aus, d. h. die ID und der Name müssen identisch sein, bevor sie gelöscht werden können. . . . . . .

select distinct name from table

Ändern wir die Abfrageanweisung noch einmal:

 name
  a
  b
  c

Leider erhalten Sie nichts außer der

Fehlermeldung
select distinct name, id from table
, eindeutig muss an der platziert werden Anfang. Ist es so schwierig, die Where-Bedingung eindeutig zu definieren? Kann Fehler melden. . . . . . .

 id name
  1 a
  2 b
  3 c
  4 c
  5 b
Die abschließende nützliche Aussage lautet wie folgt:


Ergebnis:

select id, distinct name from table
Der letzte Punkt ist überflüssig, lassen Sie ihn einfach in Ruhe, den Zweck erreicht wird. . . . .

Ach ja, übrigens, Gruppieren nach muss vor Bestellen nach und Limit platziert werden, sonst wird ein Fehler gemeldet. . . . . . . . ! OK

Zusammenfassende Anweisung:

wählen Sie *, zählen Sie (eindeutiger Name) aus (wählen Sie * aus Tabelle... und andere verschachtelte Anweisungen) gruppieren Sie nach Namen
select *, count(distinct name) from table group by name

  id name count(distinct name)
  1 a 1
  2 b 1
  3 c 1

Methode 2:


Gruppieren nach verwenden

Achten Sie darauf, einen Alias ​​hinzuzufügen, da sonst ein Fehler gemeldet wird Wickeln Sie es außerhalb der where-Anweisung ein und verwenden Sie es. Nur die Gruppierung nach Deduplizierung wird wirksam.

Das obige ist der detaillierte Inhalt vonDetaillierte Beispiele für zwei Methoden zur Deduplizierung in MySQL. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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