我有一个网站列出产品的情况。
我正在使用带有匹配搜索的全文索引
有一个名为“itemcode”的字段,该字段为varchar类型
例如,其中一个代码就像
一样“WTC-153-U”
当我在文本框中键入“WTC-153”时,我没有得到任何结果,我想这是基于连字符和数字,是否有任何解决方法或更好的方法?
我似乎无法在不修改那么多代码的情况下找到解决方案
查询就像这样
SELECT field FROM table WHERE MATCH(itemcode) AGAINST ('WTC-153')
由于
答案 0 :(得分:0)
-
计为单词分隔符,因此'WTC-153-U'
计为三个单词'WTC'
,'153'
和'U'
。
使用MyISAM时,全文搜索的默认下限字长限制为4个字符,InnoDB为3(可以更改)。
如果您使用的是InnoDB,则可以通过在文本中搜索'WTC'
和'153'
来解决此问题。显然,即使这些单词不在一起,也会返回结果或按照正确的顺序。
否则您可以使用LIKE '%WTC-153%'
进行搜索,但无法使用该索引。 LIKE 'WTC-153%'
将能够使用索引,但只有在字段以'WTC-153'
开头时才会返回该行。