首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL匹配()。用数字反对()

MySQL匹配()。用数字反对()
EN

Stack Overflow用户
提问于 2014-11-27 04:11:09
回答 2查看 2K关注 0票数 0

这个MySQL文档解释了match()... against()特性,以搜索数据库表中任何列中的文本。是否可以使用相同的特性根据列类型number搜索表中的所有字段,这些列包含不同的it,例如,

编辑:

我有一张这样的桌子:

代码语言:javascript
复制
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的任何一列,column1column2,它们的类型都是数字。

所以,我试过,

代码语言:javascript
复制
SELECT name FROM table_name WHERE MATCH (column1, column2) AGAINST ('31 51' IN BOOLEAN MODE);

但没起作用。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-11-27 04:23:38

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

代码语言:javascript
复制
where someNumber1 in (column1, column3) or
      someNumber2 in (column1, column3)

你还想要什么?

票数 2
EN

Stack Overflow用户

发布于 2014-11-28 09:26:53

您的ft_min_word_len value是4,这意味着搜索的单词长度必须至少为4才能进行全文搜索,并且在该长度以下,它将不会返回任何结果。

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

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

/etc/mysql

因此,转到上面的文件夹并键入

代码语言:javascript
复制
sudo vi my.cnf

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

代码语言:javascript
复制
ft_min_word_len = 2

保存它,然后重新启动mysql

代码语言:javascript
复制
sudo /etc/init.d/mysql restart

代码语言:javascript
复制
sudo service mysql restart

如果在执行上述操作之前,已经对表进行了全文索引,则在上述更改之后,删除索引并重新生成,或者可以从mysql终端修复表,如

代码语言:javascript
复制
repair table table_name quick
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27162931

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档