使用LIKE搜索所有列

时间:2015-03-04 15:23:58

标签: mysql sql

我正在尝试实现搜索功能,而我遇到了this question。它运作得非常出色。如果我搜索,说'去',我会得到任何包含该组合的行,无论是'gold','bogo'还是'happygolucky'。但现在,我想实现一些我可以在搜索中键入“go the”的内容。有了上面的问题,我可以使用'%go%the%'来做到这一点,并且它可以工作。但是,如果“go”的匹配位于Name,而“the”的匹配位于Species,则仍会显示该结果。如果匹配在同一列中,我只想获得结果。我的查询如下:

select * 
from tbl_fish 
where concat(Name, Size, Color, Species, Description) 
LIKE '%afr%vio%';

是不是可以解决这个问题,缺少一些正则表达式巫术魔法?

1 个答案:

答案 0 :(得分:2)

您只需要查询各个字段:

select * 
from tbl_fish 
where Name LIKE '%afr%vio%'
    OR Size LIKE '%afr%vio%'
    OR Color LIKE '%afr%vio%'
    OR Species LIKE '%afr%vio%'
    OR Description LIKE '%afr%vio%';

您还可以查看MySQL FullText Search功能