10/10/2018, 09:46

Tìm kiếm trong mysql

Chào mọi người
Khi mình làm phần tìm kiếm trong MySQL. DB của mình lưu tiếng việt. Nhưng khi tìm kiếm thì phải viết tiếng việt mới có kết quả.
VD tìm từ "nguyễn" thì phải viết là "nguyễn" mới tìm được. Còn "nguyen" thì không tìm được. Có ai biết giải quyết vấn đề này như thế nào không??
ngoc_viet08 viết 11:53 ngày 10/10/2018
đó là vì bạn tìm chính xác . tìm hiểu thêm " like " trong sql
comebacktm viết 11:54 ngày 10/10/2018
Tất nhiên là mình đã tìm bằng cú pháp LIKE. Mình nhớ là ngày xưa mình tìm được. Nhưng không hiểu tại sao bây giờ lại không được nữa. Ai đã từng bị như mình và có biết nguyên nhân tại sao không???
ngoc_viet08 viết 11:47 ngày 10/10/2018
mysql_query("SELECT * FROM `$table` WHERE `ten` LIKE '%$ten%' ");
ngày xưa làm được mà giờ làm ko được , chắc là giờ thằng php với mysql nó bị tưng hay cậu bị tưng ?
kiểm tra lại mọi thứ chắc chắn đã nào .

mình cũng đang làm lại chức năng search . dùng đúng hàm trên . bài viết "một bốn sáu"
gõ "mot bon sau" , "mot" , "mot bon" vẫn ra bình thường . bác xem lại đi
tiendx2002 viết 11:48 ngày 10/10/2018
Được gửi bởi comebacktm
Chào mọi người
Khi mình làm phần tìm kiếm trong MySQL. DB của mình lưu tiếng việt. Nhưng khi tìm kiếm thì phải viết tiếng việt mới có kết quả.
VD tìm từ "nguyễn" thì phải viết là "nguyễn" mới tìm được. Còn "nguyen" thì không tìm được. Có ai biết giải quyết vấn đề này như thế nào không??
Nếu DB của bạn lưu Unicode như thế này (1) nó sẽ không LIKE:

Nếu DB của bạn lưu Unicode như thế này (2) nó sẽ LIKE:

Nếu ta muốn không phụ thuộc default collation có thể dùng query:

Từ dạng (1) qua dạng (2) tham khảo
PHP MYSQL Unicode & chuyển đổi latin1
Thân ái.
ngoc_viet08 viết 11:50 ngày 10/10/2018
chắc anh tiến đã bắt đúng mạch rồi ...
mitdacqn viết 11:53 ngày 10/10/2018
Trong DB mình nên dùng collation là utf8_general_ci cho tất cả các fields kiểu text, varchar, khi query dữ liệu thì dùng thêm SET NAMES 'utf8' nữa là xong
Bài liên quan
0