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: