Mình đang muốn tìm kiếm chính xác trong cơ sở dữ liệu mysql để xác định xem nội dung mình muốn thêm vào đã tồn tại hay chưa? Mình có dùng LIKE nhưng không chính xác được, ai có cách nào chỉ mình với. Cảm ơn
Lost your password? Please enter your email address. You will receive a link and will create a new password via email.
Hoàng Anh
Chuyển đoạn text cần tìm/ so sánh của bạn thành binary(hệ nhị phân).
việc chuyển đoạn text thành hệ nhị phân giúp mysql sẽ hiểu từ có dấu và không có dấu là 2 từ hoàn toàn khác nhau và sẽ loại bỏ từ không đúng đi.
Cụ thể từ my và từ mỹ khi chuyển đổi sang binary sẽ là :
my => 01101101 01111001
mỹ => 01101101 1111011111001
câu lệnh chuyển đổi string sang binary là
CONVERT('string', BINARY)
Nếu bạn cần đang sử dụng câu điều liệu
%
cho đoạn string mà bạn tìm kiếm thì nhớ thêm hàmCONCAT
để nối string với ký tự%
nhé.đây là câu lệnh trước khi chuyển đổi sang binary
SELECT * FROM hashtags WHERE hashtag LIKE '%mẹ%' OR hashtag LIKE '%mỹ%' OR hashtag LIKE '%phẩm%'
Sau khi chuyển đổi
SELECT * FROM hashtags WHERE hashtag LIKE CONCAT('%', CONVERT('mẹ', BINARY), '%') OR hashtag LIKE CONCAT('%', CONVERT('mỹ', BINARY), '%') OR hashtag LIKE CONCAT('%', CONVERT('phẩm', BINARY), '%')