[英]Issue with Match Against in search query
我遇到一個列出產品的網站。
我正在使用全文索引和匹配搜索
有一個名為“ itemcode”的字段,該字段為varchar類型
原來是其中一種代碼,例如
“ WTC-153-U”
當我在文本框“ WTC-153”上鍵入時,沒有任何結果,我猜它是基於連字符和數字的,是否有任何解決方法或更好的方法?
我現在似乎無法找到解決方案而不必修改那么多代碼
查詢是這樣的
SELECT field FROM table WHERE MATCH(itemcode) AGAINST ('WTC-153')
謝謝
-
用作單詞分隔符,因此'WTC-153-U'
視為三個單詞'WTC'
, '153'
和'U'
。
使用MyISAM,全文搜索的默認單詞長度下限為4個字符,而使用InnoDB時,則為3(可以更改)。
如果您使用的是InnoDB,則可以通過在文本中同時搜索'WTC'
和'153'
來解決此問題。顯然,即使這些單詞在一起或順序不正確,也會返回結果。
否則,您可以使用LIKE '%WTC-153%'
搜索,但這將無法使用索引。 LIKE 'WTC-153%'
可以使用索引,但是僅當字段以'WTC-153'
開頭時才返回行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.