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, eineAbfrage 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
Fehlermeldungselect 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 bDie abschließende nützliche Aussage lautet wie folgt:
select id, distinct name from tableDer 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 Namenselect *, 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!