Tôi có khách hàng hỏi xem họ có tìm kiếm tên công ty có thể được tìm kiếm ở một số định dạng tùy thuộc vào đầu vào của người dùng hay không, chẳng hạn như công ty được lưu trữ trong cơ sở dữ liệu là AJR Kelly Ltd, nếu người dùng tìm kiếm "AJR Kelly" nó được tìm thấy, sử dụng;MySQL LIKE% string% không hoàn toàn tha thứ đủ. Bất cứ điều gì khác tôi có thể sử dụng?
<cfif pctermsCount gt 0>
AND (LOWER(p.name) LIKE '%#pcTerms#%')
</cfif>
Nếu họ tìm kiếm "Kelly" công ty được tìm thấy, nhưng nếu họ tìm kiếm phiên bản bị hỏng của chuỗi như "A J Kelly" hoặc "AJ Kelly" thì không tìm thấy.
Có điều gì tôi có thể làm để làm cho nó dễ chịu hơn một chút không?
Cảm ơn.
Chúng tôi đang sử dụng MyISAM. Tôi đã xem xét FullText vì vậy tôi đã thử nghiệm để đảm bảo rằng tôi có thể kích hoạt nó trên bàn, nó có thể.Tôi đã không thử nó, bởi vì nó có nghĩa là khá nhiều fiddling để cung cấp cho nó một đi trên giao diện người dùng, nhưng tôi sẽ hiển thị một vài ví dụ cho khách hàng trong PHPMyAdmin, nhưng tôi đã có một cảm giác FullText có thể là một chút quá tha thứ cho ý thích của mình. Cảm ơn câu trả lời của bạn. Fulltext có vẻ là giải pháp tốt nhất nếu anh ta không thể sống với vấn đề này. –
Bạn không cần phải lo lắng về giao diện người dùng. Bạn có thể lấy chuỗi tìm kiếm tương tự và thay đổi WHERE thành một cái gì đó như 'nơi MATCH (indexcol) chống lại ('AJ Kelly' trong Boolean Mode) ORDER BY MATCH (indexcol) chống lại ('AJ Kelly' trong Boolean Mode) DESC' –
Yeah , xin lỗi, tôi không rõ. Bởi "giao diện người dùng" tôi có nghĩa là mã phụ trợ của trang web, có khá nhiều truy vấn xây dựng dựa trên rất nhiều nội dung đến từ nhiều địa điểm, nó khá quá phức tạp, vì vậy sẽ dễ dàng hơn nếu kiểm tra kết quả từ toàn văn bằng cách hiển thị anh ấy trong PHPMyAdmin hơn là thực hiện nhiều thay đổi đối với mã phụ trợ để dùng thử. Xin lỗi, nhưng cảm ơn bạn đã đăng đoạn trích truy vấn đó, đã tiết kiệm cho tôi nhiều thời gian hơn. : D –