10/10/2018, 10:06

Tìm kiếm dữ liệu Tiếng Việt với PHP và MySQL

Mình viết 1 trang tìm kiếm bằng PHP sử dụng csdl là MySQL. Dữ liệu lưu trữ là tiếng việt charset là utf-8. Để tìm kiếm mình dùng câu lệnh SQL như sau:

"select * from <tên table> where <cột dò tìm> = '%<khoá>%'

Nhưng kết quả không được như ý muốn. Nhưng nếu dữ liệu nhập vào là tiếng việt không dấu thì ok.
Bạn nào có giải pháp cho vấn đề này không? Giúp mình với.
anhtuannd viết 12:13 ngày 10/10/2018
Sao bác không dùng LIKE mà lại dùng = nhỉ?
http://dev.mysql.com/doc/refman/5.0/...-matching.html
khoacnqg viết 12:19 ngày 10/10/2018
em cũng gặp trình trạng giống bác libraciter
em cho cái query đấy ra rồi copy vào phpmyadmin chạy thử thì được, thế mới lạ chứ, ko hiểu tại sao
các bác giúp em với
NoZ viết 12:14 ngày 10/10/2018
1. Bạn nên dùng kiểu dữ liệu nvarchar để chứa unicode
2. Trong câu select của bạn, bạn thêm ký tự N trước <khoá>
Code:
select * from <tên table> where <cột dò tìm> = N'%<khoá>%'
Thanh duc viết 12:14 ngày 10/10/2018
Được gửi bởi NoZ
1. Bạn nên dùng kiểu dữ liệu nvarchar để chứa unicode
2. Trong câu select của bạn, bạn thêm ký tự N trước <khoá>
Code:
select * from <tên table> where <cột dò tìm> = N'%<khoá>%'
Rất đúng cho MSSQL
muabanhay viết 12:19 ngày 10/10/2018
Tôi thì dùng like thường xuyên, nhưng có thề sau bài đọc này cần phải xem lại cách của mình lkho6ng hiểu N'%<khóa>%' có gì hay hơn ?
lấy gì so sánh?
muabanhay viết 12:20 ngày 10/10/2018
Tôi thì dùng like thường xuyên, nhưng có thề sau bài đọc này cần phải xem lại cách của mình lkho6ng hiểu N'%<khóa>%' có gì hay hơn ?
lấy gì so sánh?
libraciter viết 12:07 ngày 10/10/2018
sorry các bạn đúng trong code mình viết là dùng like nhưng kết quả vẫn không đúng. Mình không nghĩ là trong mysql có kiểu dữ liệu nvarchar. Nếu có thì tốt quá rồi. Nhưng khổ cái nữa là host của mình không hỗ trợ tiếng việt. Nó chỉ hỗ trợ utf-8.
NoZ viết 12:13 ngày 10/10/2018
Àh, mình sai vì MySQL không có nvarchar. Nhưng bạn đã thử thêm ký tự N trước khóa trong câu select của bạn chưa?
jiSh@n viết 12:20 ngày 10/10/2018
Được gửi bởi libraciter
sorry các bạn đúng trong code mình viết là dùng like nhưng kết quả vẫn không đúng. Mình không nghĩ là trong mysql có kiểu dữ liệu nvarchar. Nếu có thì tốt quá rồi. Nhưng khổ cái nữa là host của mình không hỗ trợ tiếng việt. Nó chỉ hỗ trợ utf-8.
Sao biết ko có hỗ trợ TV vậy bạn Ko thấy Local CP 1258 là ko hỗ trợ Tv à
Bài liên quan
0