MySQL匹配()....对数字的反对()

时间:2014-11-27 04:11:10

标签: mysql full-text-search match

MySQL documentation说明了match()... against()功能,可以搜索数据库表中任何列中的文本。是否可以使用相同的功能来搜索表格中基于类型number的所有字段,其中包含不同的ID,例如

修改

我有一张这样的表:

name        column1 column2 
----------- ------- ------- 
fifth user  50      35      
fourth user 51      30      
third user  52      31      
second user 53      31      
First User  54      35      

现在,我希望获取包含column1column2列中任意一个数字编号为31和51的所有名称。

所以,我试过了,

SELECT name FROM table_name WHERE MATCH (column1, column2) AGAINST ('31 51' IN BOOLEAN MODE);

但没有奏效。

2 个答案:

答案 0 :(得分:2)

我不完全理解你的语法。一列只能包含一个数字。你可以这样做:

where someNumber1 in (column1, column3) or
      someNumber2 in (column1, column3)

你还想要什么?

答案 1 :(得分:0)

您的ft_min_word_len value为4表示搜索的字长必须至少为长度4才能进行全文搜索,低于该长度则不会返回任何结果。

您可能需要将长度重置为2,这就是您可以这样做的方法

在debian / ubuntu操作系统中,您可以通过更新ft_min_word_len文件来更改my.cnf的值。文件的位置通常在

/etc/mysql

所以转到上面的文件夹并输入

sudo vi my.cnf

然后在文件中检查块[mysqld]并查看变量是否已经存在,如果没有那么只需添加行

ft_min_word_len = 2

保存并重新启动mysql

sudo /etc/init.d/mysql restart

sudo service mysql restart

如果在执行上述操作之前已经在表上已经有了全文索引,那么在上面的更改之后删除索引并重建,或者你可以从mysql终端修复表格

repair table table_name quick