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: