【发布时间】:2019-02-26 11:37:24
【问题描述】:
我正在使用 MySQL 作为电子商务项目的后端。在第一个屏幕中,我在用户搜索某些内容时显示结果,通过这些结果,用户可以选择任何一个结果并根据选择,用户获取与所选相关的所有产品结果。
示例:
屏幕 1(从搜索栏):用户搜索“tropicana”,结果集将是:
第 1 名:tropicana 混合果汁(类别)
第 2 名:tropicana 苹果汁中的果汁(类别)
第 3 名:果汁中的 tropicana 橙汁(类别)
第四名:tropicana 菠萝汁(类)
第 5 名:果汁(类别)中的 tropicana 番石榴汁和所有其他 tropicana 相关产品,不分任何类别
屏幕 2(选择“tropicana pineapple 果汁”后):用户根据所选产品名称及其类别获取结果集(我在此屏幕中使用了分页):
第一个:tropicana 混合果汁与所有基本细节
第二:tropicana 苹果汁,包含所有基本细节
第三:具有所有基本细节的tropicana橙汁
第四名:tropicana 菠萝汁,包含所有基本细节
第五名:tropicana番石榴汁,包含所有基本细节
但我想要的是用户应该首先看到所选产品的详细信息,然后是所有其他相关产品:
示例:
第 1 名:具有所有基本细节的 tropicana 菠萝汁
第二:tropicana 苹果汁,包含所有基本细节
第三:具有所有基本细节的tropicana橙汁
第四:tropicana 混合果汁与所有基本细节
第五名:tropicana番石榴汁,包含所有基本细节
我用过这个sql查询:
("select p.id,p.product_name,p.rating,p.rating_count,p.product_mrp from product p
INNER JOIN product_category_mapping pcm ON p.id = pcm.product_id
where (p.product_name like concat('",in_product_name,"','%') or p.product_name like concat('%','",in_product_name,"','%'))
order by p.",in_order_by," ",in_order_type," limit ", var_offset,",",var_limit);
任何人都可以为此提出任何好的选择吗?
【问题讨论】:
-
首先要注意安全性,您的代码接缝容易受到 SQL 注入攻击。然后担心性能..
-
@RaymondNijland 我给出了非常基本的查询,仅供参考
-
相信其他牌子的果汁都可以买到
标签: mysql node.js search full-text-search e-commerce