Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie kann ich nur die erste eindeutige Übereinstimmung aus einem Feld in MySQL auswählen?

DISTINCT nicht so funktioniert, müssen die Werte in allen zurückgegebenen Spalten unterschiedlich sein.

Sie können immer eine Aggregatfunktion für den hash verwenden Funktion und GROUP BY name was einen hash zurückgibt Wert für jeden name :

SELECT name, min(hash) hash
FROM my_table 
WHERE name LIKE '%An%' 
GROUP BY name;

Siehe SQL-Geige mit Demo .

Hinweis: Verwenden der Aggregatfunktion mit dem GROUP BY stellt sicher, dass Sie immer den erwarteten Wert für den hash zurückgeben Säule. Wenn Sie GROUP BY nicht verwenden oder aggregieren Sie die Elemente im SELECT list, erhalten Sie möglicherweise unerwartete Ergebnisse. (siehe MySQL-Erweiterungen zu GROUP BY )

Aus den MySQL-Dokumenten: