MySQL DISTINCT Schlüsselwort
Das Schlüsselwort DISTINCT wird in MySQL verwendet, um doppelte Datensätze aus den Ergebnissen einer SELECT Abfrage zu entfernen. Sie stellt sicher, dass die Abfrage nur eindeutige Werte in den angegebenen Spalten zurückgibt.
Verwendung
Das Schlüsselwort DISTINCT wird verwendet, wenn du sicherstellen willst, dass die Abfrageergebnisse nur eindeutige Einträge enthalten und alle doppelten Zeilen ausgeschlossen werden. Es wird direkt nach dem Schlüsselwort SELECT platziert.
SELECT DISTINCT column1, column2, ...
FROM table_name;
In dieser Syntax wird DISTINCT auf die angegebene(n) Spaltenkombination(en) angewendet, um sicherzustellen, dass nur eindeutige Kombinationen von Werten zurückgegeben werden.
Beispiele
1. Grundlegende Verwendung
SELECT DISTINCT country
FROM customers;
Diese Abfrage ruft eine Liste eindeutiger Länder aus der Tabelle customers ab und eliminiert dabei alle Duplikate.
2. Mehrspaltig
SELECT DISTINCT first_name, last_name
FROM employees;
In diesem Beispiel stellt das Schlüsselwort DISTINCT sicher, dass die Kombination aus first_name und last_name in den Ergebnissen eindeutig ist. Es können immer noch Zeilen mit demselben Vornamen, aber unterschiedlichen Nachnamen enthalten sein und umgekehrt.
3. Kombiniert mit WHERE-Klausel
SELECT DISTINCT category
FROM products
WHERE price > 50;
Hier wird das Schlüsselwort DISTINCT mit einer WHERE Klausel verwendet, um einzigartige Produktkategorien zu finden, bei denen der Preis größer als 50 ist, um sowohl die Spezifität als auch die Einzigartigkeit der Ergebnisse zu verbessern.
4. Kombiniert mit ORDER BY
SELECT DISTINCT department
FROM employees
ORDER BY department;
Dieses Beispiel zeigt, wie du DISTINCT mit ORDER BY verwendest, um eindeutige Abteilungsnamen abzurufen und eine bestimmte Reihenfolge in den Ergebnissen beizubehalten.
Tipps und bewährte Praktiken
- Verwende DISTINCT mit Vorsicht.
DISTINCTentfernt zwar Duplikate, kann aber die Leistung beeinträchtigen, besonders bei großen Datensätzen. - Auf die erforderlichen Spalten anwenden. Verwende
DISTINCTnur für Spalten, bei denen Eindeutigkeit erforderlich ist, um unnötigen Overhead zu vermeiden. - Kombiniere mit
ORDER BY. Wenn nötig, kombiniereDISTINCTmitORDER BY, um eine bestimmte Reihenfolge in den Ergebnissen zu erhalten. - Achte auf NULLs.
DISTINCTbehandeltNULLWerte als gleichwertig, so dass nur einNULLfür jede Spaltenkombination zurückgegeben wird, was sich auf die Ergebnisse auswirken kann, wenn mehrereNULLs in mehreren Spalten vorhanden sind.