Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como posso selecionar apenas a primeira correspondência distinta de um campo no MySQL?


DISTINTO não funciona dessa maneira, os valores devem ser distintos em todas as colunas que estão sendo retornadas.

Você sempre pode usar uma função agregada no hash função e GROUP BY name que retornará um hash valor para cada nome :
SELECT name, min(hash) hash
FROM my_table 
WHERE name LIKE '%An%' 
GROUP BY name;

Consulte SQL Fiddle with Demo .

Observação: usando a função de agregação com o GROUP BY garantirá que você sempre retornará o valor esperado para o hash coluna. Quando você não GROUP BY ou agregue os itens no SELECT list, você pode retornar resultados inesperados. (consulte Extensões MySQL para GROUP BY )

Dos documentos do MySQL: