MySQL DISTINCT und DISTINCTROW

Author:
Kategorie:
SQL Code
Beitrag vom:
MySQL DISTINCT
MySQL DISTINCT

Doppelten Einträge (Duplikate) mit der MySQL Funktion DISTINCT bei MySQL Datenbankabfragen ausschließen

In der Theorie sollten in einer Datenbanktabelle, der Daten-Konsistenz wegen, eigentlich keine identischen Datensätze vorhanden sein. Es kann aber unter Umständen vorkommen, das bestimmte Abfragen nach Duplikaten gefiltert werden müssen. Um bei MySQL Datenbankabfragen im Vorfeld schon doppelte Datensätze abzufangen, können dabei die MySQL Funktionen DISTINCT und DISTINCTROW bei der SELECT Ausführung verwendet werden.

Das folgende Beispiel zeigt ein MySQL SELECT auf eine MySQL Tabelle mit verschiedenen Autos und Modellen, in der nur die Automarke abgefragt wird und mittels DISTINCT doppelte Einträge verschwinden.

Beispiel zu SELECT DISTINCT:

SELECT DISTINCT `automarke` FROM `autos` WHERE 1;

Möchte man die Anzahl von Ergebnissen geliefert bekommen, geht das mit der MySQL Funktion COUNT().

SELECT COUNT(DISTINCT(`automarke`)) FROM `autos` WHERE 1;

Nur zur Unterscheidung von DISTINCT und DISTINCTROW. Die MySQL Funktion DISTINCTROW filtert Duplikate über mehrere Tabellen hinweg aus den SELECT Ergebnissen. Am Beispiel der Autos kommt nun mittels INNER JOIN eine weitere Tabelle "Farbe" ins Spiel.

Bei zu SELECT DISTINCTROW:

SELECT DISTINCTROW `farbe` FROM `autos` INNER JOIN `auto_farben` ON autos.farb_id = auto_farben.id WHERE 1;

Das Ergebnis liefert jetzt nicht jede Farbe zu jedem Auto, sondern nur jeweils eine Farbe als Zusammenfassung.


Seite teilen

Der Beitrag: MySQL DISTINCT und DISTINCTROW, aus der Rubrik SQL Code hat dir gefallen?