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: