Auswählen eindeutiger Werte aus mehreren Spalten in MySQL
Bei der Arbeit mit Datenbanken ist es häufig erforderlich, eindeutige Wertekombinationen aus mehreren Spalten abzurufen. Die Verwendung des Schlüsselworts DISTINCT führt jedoch möglicherweise nicht immer zu den gewünschten Ergebnissen. In diesem Artikel wird ein alternativer Ansatz zur Auswahl unterschiedlicher Werte aus zwei Spalten in einer MySQL-Datenbank untersucht.
Betrachten Sie die folgende Tabelle mit dem Namen „foo_bar“:
foo | bar |
---|---|
a | c |
c | f |
d | a |
c | a |
f | c |
a | c |
d | a |
a | c |
c | a |
f | c |
Abfragen dieser Tabelle mit der folgenden SQL-Anweisung:
SELECT DISTINCT foo, bar FROM foo_bar;
erzeugt das folgende Ergebnis:
foo | bar |
---|---|
a | c |
c | f |
d | a |
c | a |
f | c |
Diese Abfrage stellt zwar sicher, dass nur eine Instanz jeder eindeutigen Wertekombination zurückgegeben wird, beseitigt jedoch nicht die Redundanzen, bei denen die Werte in den beiden Spalten vertauscht werden. Beispielsweise sind sowohl „a c“ als auch „c a“ unterschiedliche Kombinationen, beziehen sich jedoch auf dieselben Daten.
Um dieses Problem zu beheben, können wir stattdessen die GROUP BY-Klausel verwenden:
SELECT foo, bar FROM foo_bar GROUP BY foo, bar;
Diese Abfrage gibt das folgende Ergebnis zurück:
foo | bar |
---|---|
a | c |
c | f |
d | a |
Wie Sie sehen können, kombiniert die GROUP BY-Klausel effektiv alle doppelten Zeilen in einer einzigen Zeile Eliminierung der Wiederholungen und Bereitstellung wirklich unterschiedlicher Wertekombinationen aus den Spalten foo und bar.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3