Heim  >  Artikel  >  Datenbank  >  Wie wähle ich alle Felder mit DISTINCT in MySQL aus?

Wie wähle ich alle Felder mit DISTINCT in MySQL aus?

Susan Sarandon
Susan SarandonOriginal
2024-11-04 08:31:30541Durchsuche

How to Select All Fields with DISTINCT in MySQL?

In MySQL-Abfrage können nicht alle Felder mit DISTINCT ausgewählt werden

Beim Versuch, doppelte Zeilen mithilfe des Schlüsselworts DISTINCT zu entfernen, können Benutzer auf Einschränkungen stoßen Sie wählen alle Felder in ihren MySQL-Abfragen aus. Dieser Artikel befasst sich mit dem Problem und bietet eine Lösung.

Hintergrund

Das Schlüsselwort DISTINCT identifiziert und gibt nur eindeutige Zeilen in einem Ergebnissatz zurück, basierend auf der/den angegebenen Spalte(n). ). In Kombination mit einer Select-All-Anweisung (*) kann es jedoch zu Fehlern kommen.

Betrachten Sie die folgende Abfrage, die nur die Spalte „ticket_id“ in der Tabelle „temp_tickets“ auswählt und sie nach „ticket_id“ sortiert:

mysql_query("SELECT DISTINCT ticket_id FROM temp_tickets ORDER BY ticket_id")

Diese Abfrage wird erfolgreich ausgeführt und gibt eindeutige Ticket-ID-Werte zurück. Die folgende Abfrage, die versucht, alle Felder auszuwählen und DISTINCT:

mysql_query("SELECT * , DISTINCT ticket_id FROM temp_tickets ORDER BY ticket_id")

zu verwenden, führt jedoch zu einem Fehler. Dies liegt daran, dass DISTINCT nur auf eine einzelne Spalte angewendet werden kann.

Lösung

Um alle Felder auszuwählen und DISTINCT zum Entfernen von Duplikaten zu verwenden, ändern Sie die Abfrage wie folgt:

SELECT ticket_id, <other_field>, <other_field> FROM temp_tickets GROUP BY ticket_id ORDER BY ticket_id

In dieser Abfrage wird die GROUP BY-Klausel in Verbindung mit DISTINCT verwendet, um die Ergebnisse nach der Spalte „ticket_id“ zu gruppieren. Für jede eindeutige Ticket-ID wird nur eine einzelne Zeile zurückgegeben, die die neuesten Werte für die angegebenen Felder enthält.

Das obige ist der detaillierte Inhalt vonWie wähle ich alle Felder mit DISTINCT in MySQL aus?. 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