我正在尝试实现搜索功能,而我遇到了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%';
是不是可以解决这个问题,缺少一些正则表达式巫术魔法?
答案 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功能