DISTINCT nie działa w ten sposób, wartości muszą być różne we wszystkich zwracanych kolumnach.
Zawsze możesz użyć funkcji agregującej w hash funkcja i GRUPA WEDŁUG nazwy co zwróci jeden hash wartość dla każdej nazwy :
SELECT name, min(hash) hash
FROM my_table
WHERE name LIKE '%An%'
GROUP BY name;
Zobacz SQL Fiddle z wersją demonstracyjną .
Uwaga: za pomocą funkcji agregującej z GROUP BY upewni się, że zawsze zwrócisz oczekiwaną wartość dla hash kolumna. Kiedy nie GROUP BY lub agregować elementy w SELECT listy, możesz zwrócić nieoczekiwane wyniki. (patrz Rozszerzenia MySQL do GROUP BY
)
Z dokumentacji MySQL: