[英]MySQL: Finding multiple words in full text search - exact matches only
我正在編寫一些代碼來自動標記一些文章。
我有一個標簽數組和一個文章表。 我運行以下查詢來檢查與標簽匹配的標題:
SELECT headline
FROM `news`
WHERE MATCH(headline) AGAINST ("+Green +Day" IN BOOLEAN MODE)
這會找到標題中帶有確切短語“ Green Day”的所有文章-如果沒有第一個+,我將獲得僅包含單詞“ Green”的文章。
這並不完美,某些標簽會導致結果不准確-例如,名為Die! Die! Die!
的標簽Die! Die! Die!
Die! Die! Die!
(不要問)返回每個標題中帶有“ die”字樣的標題。
有什么明顯的我想念的地方嗎? 我想要的是獲得包含整個短語的標題,並以准確的方式輸入。
據我在文檔中看到的,使用引號就足夠了。 從文檔頁面上的示例中:
“一些單詞”
查找包含確切短語“某些單詞”的行(例如,包含“某些智慧單詞”但不包含“某些干擾單詞”的行)。 請注意,將短語括起來的“”字符是界定短語的運算符,而不是將搜索字符串本身括起來的引號。
您必須在雙引號周圍加上多余的單引號,這意味着要進行精確的單詞查詢。 +
運算符僅表示AND
邏輯。
SELECT headline
FROM `news`
WHERE MATCH(headline) AGAINST ('"+Green +Day"' IN BOOLEAN MODE)
@Matt-使用Mitch的代碼匹配“ Terror”的原因是因為您沒有在第一個%字符后留空格。 精確搜索單個單詞的正確語法如下所示
SELECT headline FROM news WHERE headline LIKE '% Green Day %'
這將滿足您檢索以完全相同的方式檢索輸入的單詞的請求。
如果要匹配整個短語,則應執行以下操作:
SELECT headline FROM news WHERE headline LIKE '%Green Day%'
這樣一來,您就會在標題中返回帶有“綠色日”字樣的結果。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.