MySQL在行值中查找子字符串?

时间:2012-02-14 21:43:22

标签: mysql

我希望在用户输入时更新搜索结果。

我使用MATCH将搜索字词与行进行比较。 MATCH很棒,因为它不区分大小写,它将重音字符视为常规字符。

我对此实现的问题是,只有在用户输入完整单词时才会找到结果。

E.G: If the user types `arbol` MATCH finds all similar rows (árbol, Arbol etc)
however when he just typed `árb` MATCH doesn't find any results.

我应该如何编写WHERE子句,以便显示所有出现的是否在字符串或子字符串中?

2 个答案:

答案 0 :(得分:3)

在匹配字符串中附加通配符(*)应该可以执行您想要的操作。

WHERE MATCH (columnName) AGAINST ("term*");
编辑:哦,你需要:

IN BOOLEAN MODE

也可以使用通配符匹配。

答案 1 :(得分:1)

MySQL MATCH使用全文搜索,默认最低4个字符要求。

  

要索引的单词的最小和最大长度由。定义   ft_min_word_lenft_max_word_len个系统变量。 (见章节   5.1.3,“服务器系统变量”。)默认最小值为四个字符;默认最大值取决于版本。

参考:http://dev.mysql.com/doc/refman/5.5/en/fulltext-fine-tuning.html