mysql sql怎么将like 和in结合或者其他方法?

有个商城软件,想要进行搜索框进行商品查询,比如输入蓝月亮洗衣液

select title from goods where title like '%蓝月亮洗衣液%'

出现的结果是没有"蓝月亮洗手液洗衣液"这种结果的,所以要根据需求写

select title from goods where title like '%蓝%' AND title LIKE '%月%' AND title LIKE '%亮%' AND title LIKE '%洗%' AND title LIKE '%衣%' AND title LIKE '%液%'

但是太长了,尤其数据库中有百万条记录,查询效率也低下,怎么优化好一些

select title from goods where title like in ('%蓝%','%月%','%亮%') 
阅读 2.9k
2 个回答

你需要的是 全文检索,而不是这样。

如果你的版本过低,无法使用全文检索,还可以选择引入 ES ,或者使用代码生成上面的 like 语句,但是,需要注意,你这样查询的效率很低。

你的需求其实是全文检索(Full text search)。如果你不希望引入更多的依赖,你需要研究下mysql的文档,当前版本mysql是支持的: https://dev.mysql.com/doc/ref...

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题