Bạn đã cố gắng sử dụng đối chiếu không nhạy trọng âm để tìm kiếm và đặt hàng của mình.
http://dev.mysql.com/doc /refman/5.0/en/charset-collation-implementations.html
Vấn đề là, NAME
của bạn cột dường như được lưu trữ trong bộ ký tự latin1 (8-bit). Đó là lý do tại sao mySQL đang càu nhàu với bạn như thế này:
COLLATION 'utf8_general_ci' is not valid for CHARACTER SET 'latin1'
Bạn có thể nhận được kết quả mong muốn nếu bạn cố gắng
WHERE CONVERT(p.NAME USING utf8) LIKE _utf8 '%jose%' COLLATE utf8_general_ci;
Nhưng, hãy cẩn thận!
Khi bạn sử dụng bất kỳ loại hàm nào (trong ví dụ này là CHUYỂN ĐỔI) trên cột trong câu lệnh WHERE, bạn đã đánh bại nỗ lực của MySQL để tối ưu hóa tìm kiếm của bạn với các chỉ mục. Nếu dự án này sẽ trở nên lớn (nghĩa là nếu bạn có nhiều hàng trong bảng của mình), bạn cần lưu trữ dữ liệu của mình ở định dạng utf8, không phải latin1. (Có thể bạn đã biết rằng LIKE '%whatever%'
của bạn cụm từ tìm kiếm cũng đánh bại việc lập chỉ mục của MySQL.)