这个MySQL文档解释了match()... against()特性,以搜索数据库表中任何列中的文本。是否可以使用相同的特性根据列类型number搜索表中的所有字段,这些列包含不同的it,例如,
编辑:
我有一张这样的桌子:
name column1 column2
----------- ------- -------
fifth user 50 35
fourth user 51 30
third user 52 31
second user 53 31
First User 54 35 现在,我想得到所有的名称,其中包含数字31和51的任何一列,column1和column2,它们的类型都是数字。
所以,我试过,
SELECT name FROM table_name WHERE MATCH (column1, column2) AGAINST ('31 51' IN BOOLEAN MODE);但没起作用。
发布于 2014-11-27 04:23:38
我不完全理解你的语法。列只能包含一个数字。你可以这样做:
where someNumber1 in (column1, column3) or
someNumber2 in (column1, column3)你还想要什么?
发布于 2014-11-28 09:26:53
您的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 quickhttps://stackoverflow.com/questions/27162931
复制相似问题