MySQL喜欢在列上使用非顺序词进行搜索

时间:2018-10-03 05:52:55

标签: mysql sql

我有一个名为“产品”的表,其中有诸如“具有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”关键字时,有什么方法可以获取结果集的记录吗?

谢谢。

2 个答案:

答案 0 :(得分:1)

您可以通过3种方式解决此任务:

  1. 您可以创建full-text index and search by it
  2. 您可以中断对单词的用户搜索查询,并进行如下数据库查询:

    SELECT * FROM products WHERE product_name LIKE '%iphone5%1gb%' limit 5

  3. 您可以使用搜索引擎,例如Elastic Search。我认为这样比较好

答案 1 :(得分:0)

您只能在搜索字符串中使用1gb

 select * from t1 where  item like '%1GB%'

否则,您必须使用全文搜索,但要使用此搜索必须在表中实现该功能