0

我有一个查询

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+

我想要所有标题、listing_title 和艺术家包含任何查询词和描述的记录,前提是该短语与描述的任何部分匹配。

谢谢

4

1 回答 1

2

在需要精确短语匹配的位置添加双引号:

....
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

调整逻辑运算符以满足您的需求。

于 2013-07-15T09:18:32.907 回答