我有一个名为“产品”的表,其中有诸如“具有1GB数据的Iphone5”,“具有10GB数据的Iphone5”等产品名称,依此类推...
当用户使用搜索框搜索该产品时,我会进行如下查询...
select *
from products
where product_name like '%USER_SEARCH_KEY%'
limit 5;
现在,当我搜索“ iphone5 with”时,我得到其中带有“ iphone5 with”字样的行。但是,当我搜索“ iphone5 1gb”时,没有找到记录...我必须输入“ iphone5 1gb”才能得到该结果。当我也搜索“ iphone5 1gb”关键字时,有什么方法可以获取结果集的记录吗?
谢谢。
答案 0 :(得分:1)
您可以通过3种方式解决此任务:
您可以中断对单词的用户搜索查询,并进行如下数据库查询:
SELECT * FROM products WHERE product_name LIKE '%iphone5%1gb%' limit 5
您可以使用搜索引擎,例如Elastic Search。我认为这样比较好
答案 1 :(得分:0)
您只能在搜索字符串中使用1gb
select * from t1 where item like '%1GB%'
否则,您必须使用全文搜索,但要使用此搜索必须在表中实现该功能