有个商城软件,想要进行搜索框进行商品查询,比如输入蓝月亮洗衣液
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 ('%蓝%','%月%','%亮%')
你需要的是 全文检索,而不是这样。
如果你的版本过低,无法使用全文检索,还可以选择引入 ES ,或者使用代码生成上面的 like 语句,但是,需要注意,你这样查询的效率很低。