sql >> Base de Datos >  >> RDS >> Mysql

¿Cómo puedo seleccionar solo la primera coincidencia distinta de un campo en MySQL?

DISTINCT no funciona de esa manera, los valores deben ser distintos en todas las columnas que se devuelven.

Siempre puede usar una función agregada en el hash función y GROUP BY name que devolverá un hash valor para cada name :

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

Consulte SQL Fiddle con demostración .

Nota: usando la función agregada con GROUP BY se asegurará de que siempre devolverá el valor esperado para el hash columna. Cuando no GROUP BY o agregar los elementos en el SELECT lista, puede devolver resultados inesperados. (ver Extensiones de MySQL para GROUP BY )

De los documentos de MySQL: