Tôi sẽ đề xuất sử dụng Tìm kiếm toàn văn bản của MySQL sử dụng điều này với Tìm kiếm toàn văn bản Boolean bạn sẽ có thể nhận được kết quả mong muốn của mình.
Chỉnh sửa:
Ví dụ được yêu cầu dựa trên các điều kiện bạn yêu cầu ("Trường đó chỉ là một trường và họ có thể chọn một trong 4 tùy chọn (tức là 1 từ, các từ chính xác, ít nhất 1 từ, không có thuật ngữ).")
Tôi giả sử bạn đang sử dụng php dựa trên bài đăng đầu tiên của bạn
<?php
$choice = $_POST['choice'];
$query = $_POST['query'];
if ($choice == "oneWord") {
//Not 100% sure what you mean by one word but this is the simplest form
//This assumes $query = a single word
$result = mysql_query("SELECT * FROM table WHERE MATCH (field) AGAINST ('{$query}' IN BOOLEAN MODE)");
} elseif ($choice == "exactWords") {
$result = mysql_query("SELECT * FROM table WHERE MATCH (field) AGAINST ('\"{$query}\"' IN BOOLEAN MODE)");
} elseif ($choice == "atLeastOneWord") {
//The default with no operators if given multiple words will return rows that contains at least one of the words
$result = mysql_query("SELECT * FROM table WHERE MATCH (field) AGAINST ('{$query}' IN BOOLEAN MODE)");
} elseif ($choice == "withoutTheTerm") {
$result = mysql_query("SELECT * FROM table WHERE MATCH (field) AGAINST ('-{$query}' IN BOOLEAN MODE)");
}
?>
hy vọng điều này sẽ giúp sử dụng đầy đủ các toán tử trong các đối sánh boolean, hãy xem Tìm kiếm toàn văn bản Boolean