我有一个查询
SELECT *
FROM tbl_listing AS al
WHERE
(MATCH(al.title, al.listing_title) AGAINST('search query*' IN BOOLEAN MODE) OR
MATCH(al.description) AGAINST('search query' IN BOOLEAN MODE) OR
MATCH(al.artist_full_name) AGAINST('search query*' IN BOOLEAN MODE));
工作正常,但我似乎无法确定如何确保描述搜索是文字搜索。
所以,如果我有
search.php?search_query=Abstract+Painting+Philisophical+Spiritual+Barzakh+
我想要所有记录,其中title,listing_title和artist包含任何查询词和描述,只要该词组在描述的任何部分匹配。
由于
答案 0 :(得分:1)
在需要精确词组匹配的位置添加双引号:
....
WHERE
MATCH(title, listing_title)
AGAINST('search query' IN BOOLEAN MODE) -- matches if any one word is present in "title" or "listing_title"
OR
MATCH(description) AGAINST('"search query"' IN BOOLEAN MODE) -- matches the exact phrase only
根据您的需要调整逻辑运算符。