我希望在用户输入时更新搜索结果。
我使用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子句,以便显示所有出现的是否在字符串或子字符串中?
答案 0 :(得分:3)
在匹配字符串中附加通配符(*)应该可以执行您想要的操作。
WHERE MATCH (columnName) AGAINST ("term*");
编辑:哦,你需要:
IN BOOLEAN MODE
也可以使用通配符匹配。
答案 1 :(得分:1)
MySQL MATCH
使用全文搜索,默认最低4个字符要求。
要索引的单词的最小和最大长度由。定义
ft_min_word_len
和ft_max_word_len
个系统变量。 (见章节 5.1.3,“服务器系统变量”。)默认最小值为四个字符;默认最大值取决于版本。
参考:http://dev.mysql.com/doc/refman/5.5/en/fulltext-fine-tuning.html