DISTINCT tidak bekerja seperti itu, nilainya harus berbeda di semua kolom yang dikembalikan.
Anda selalu dapat menggunakan fungsi agregat pada hash fungsi dan GROUP BY name yang akan mengembalikan satu hash nilai untuk setiap name :
SELECT name, min(hash) hash
FROM my_table
WHERE name LIKE '%An%'
GROUP BY name;
Lihat SQL Fiddle dengan Demo .
Catatan: menggunakan fungsi agregat dengan GROUP BY akan memastikan bahwa Anda akan selalu mengembalikan nilai yang diharapkan untuk hash kolom. Bila Anda tidak GROUP BY atau agregat item dalam SELECT daftar, Anda mungkin mengembalikan hasil yang tidak terduga. (lihat Ekstensi MySQL ke GROUP BY
)
Dari Dokumen MySQL: