Như ai đó đã đề xuất, bạn chỉ có thể điều chỉnh và sử dụng tìm kiếm toàn văn bản.
Nếu bạn chọn đi theo con đường này, bạn sẽ cần phải bật tìm kiếm toàn văn bản trên các trường bắt buộc.
Tôi giả sử bạn sẽ kiểm tra post_title và post_body (?), Những thứ cần bạn chạy nó;
ALTER TABLE `posts` ADD FULLTEXT KEY `post_search` (`post_title`,`post_body`);
Khi điều đó hoàn tất, truy vấn tìm kiếm của bạn có thể dễ dàng được chỉnh sửa để trở thành;
$sql = "SELECT * FROM `posts` WHERE MATCH(post_title,post_body) AGAINST '$search'";
Nếu bạn muốn khớp tốt hơn, bạn cũng có thể cho điểm và đặt hàng theo thứ tự đó, yêu cầu mã tương tự như sau:
$sql = "SELECT *, MATCH(post_title, post_body) AGAINST ('{$search}') AS score ".
"FROM `posts` WHERE MATCH(post_title, post_body) AGAINST ('{$search}') ORDER BY `score` DESC";
--- LƯU Ý
Đối với việc tìm kiếm, bạn cần phải tìm ra cách bạn sẽ tìm kiếm.
Trong trường hợp trước tôi đã sử dụng tương tự, tôi chỉ đơn giản có một biểu mẫu cho cụm từ tìm kiếm (Được đặt tên là "Tìm kiếm") dẫn đến $ _POST ['search'] được gửi đến máy chủ.
Sau đó tôi đã sử dụng;
$search = (array_key_exists('search', $_POST) && is_string($_POST['search'])) ? mysql_real_escape_string($_POST['search'], $c) : FALSE ;
if ($search) {
// Do the fulltext query requires (See above)
}
Vì tìm kiếm toàn văn bản sẽ bỏ qua dấu gạch nối, bạn chỉ còn lại khoảng trắng, điều này rất phù hợp với toàn văn bản, nếu bạn chọn sử dụng kết quả được ghi điểm.