0

我有一个列出产品的网站的情况。

我正在使用带有匹配搜索的全文索引

有一个名为“itemcode”的字段,该字段为 varchar 类型

例如,结果是其中一个代码,就像

“世贸中心-153-U”

当我在文本框“WTC-153”上输入时,我没有得到任何结果,我猜它是基于连字符和数字的,有什么解决方法或更好的方法吗?

我目前似乎找不到解决方案而无需修改那么多代码

查询是这样的

SELECT field FROM table WHERE MATCH(itemcode) AGAINST ('WTC-153')

谢谢

4

1 回答 1

0

-计为单词分隔符,因此'WTC-153-U'计为三个单词'WTC''153''U'

使用 MyISAM,全文搜索的默认字长下限是 4 个字符,而 InnoDB 是 3 个(可以更改)。

如果您使用的是 InnoDB,则可以通过在文本中搜索'WTC'和搜索来解决此问题'153'。显然,即使这些词不在一起或顺序不正确,这也会返回结果。

否则,您可以搜索,LIKE '%WTC-153%'但无法使用索引。LIKE 'WTC-153%'将能够使用索引,但仅当字段以 . 开头时才会返回该行'WTC-153'

于 2014-08-18T20:37:09.657 回答