社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  DATABASE

基于非序列词的MySQL类搜索

user2301765 • 6 年前 • 1412 次点击  

我有一个名为“产品”的表,其中有产品名称,如“1GB数据的iPhone5”、“10GB数据的iPhone5”等…等等…

当用户使用搜索框搜索此产品时,我会进行如下查询…

 select *
 from products
 where product_name like '%USER_SEARCH_KEY%'
 limit 5;

现在,当我用“iphone5”搜索“iphone5”时,会得到其中包含“iphone5 with”单词的行。但当我搜索“iphone5 1gb”时,没有找到任何记录…我必须输入“1GB的iPhone5”才能得到这个结果。当我搜索“iphone5 1gb”关键字时,是否也可以获得结果集的记录?

事先谢谢。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/30478
 
1412 次点击  
文章 [ 2 ]  |  最新文章 6 年前
Zaynul Abadin Tuhin
Reply   •   1 楼
Zaynul Abadin Tuhin    6 年前

搜索字符串中只能使用1GB

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

否则,必须使用全文搜索,但要使用它,必须在表中实现它。

JIJOMON K.A Maxim Fedorov
Reply   •   2 楼
JIJOMON K.A Maxim Fedorov    6 年前

您有三种方法可以解决此任务:

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

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

  3. 您可以使用搜索引擎,例如弹性搜索。我觉得这样比较好