[英]MySQL FullText search returns 0 if multiple row matches
如果我在查詢中傳遞唯一值,則Match
/ Against
返回true;如果我傳遞值(存在於多行中),則Match
返回值為0。
SELECT MATCH(b.branch_name)
AGAINST ('Men' IN NATURAL LANGUAGE MODE ), branch_name
FROM `branch` AS `b` WHERE 1
Table Data:
id | branch_name
--------------------
1 | Men
2 | Beauty
3 | Women
如果我通過MATCH(b.branch_name) AGAINST ('Men' IN NATURAL LANGUAGE MODE )
為所有行返回0,如果我通過MATCH(b.branch_name) AGAINST ('Women' IN NATURAL LANGUAGE MODE )
MATCH(b.branch_name) AGAINST ('Men' IN NATURAL LANGUAGE MODE )
返回的所有值都MATCH(b.branch_name) AGAINST ('Women' IN NATURAL LANGUAGE MODE )
0 'beauty'
誰能幫我哪里錯了?
有一個名為ft_min_word_len
的系統變量,其默認值為4(請參見此處 )。
這意味着少於四個字母的單詞將被忽略-不包括在索引中。 索引中沒有條目; 沒有返回任何行。
重置該值,然后重建索引,以使“ men”位於索引中。 然后您的查詢將起作用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.