此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
现在,我希望获取包含column1
和column2
列中任意一个数字编号为31和51的所有名称。
所以,我试过了,
SELECT name FROM table_name WHERE MATCH (column1, column2) AGAINST ('31 51' IN BOOLEAN MODE);
但没有奏效。
答案 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