DISTINCT không hoạt động theo cách đó, các giá trị phải khác biệt trên tất cả các cột được trả về.
Bạn luôn có thể sử dụng một hàm tổng hợp trên hash hàm và GROUP BY name sẽ trả về một hash giá trị cho mỗi name :
SELECT name, min(hash) hash
FROM my_table
WHERE name LIKE '%An%'
GROUP BY name;
Xem SQL Fiddle with Demo .
Lưu ý: bằng cách sử dụng hàm tổng hợp với GROUP BY sẽ đảm bảo rằng bạn sẽ luôn trả về giá trị mong đợi cho hash cột. Khi bạn không GROUP BY hoặc tổng hợp các mục trong SELECT danh sách, bạn có thể trả về kết quả không mong đợi. (xem Tiện ích mở rộng MySQL cho GROUP BY
)
Từ MySQL Docs: