我使用MySQL作为eCommerce project.In first屏幕的后端,我在用户搜索的时候显示结果,有了这些结果,用户可以选择任何一个结果,并在选择的基础上,用户获得与所选结果相关的所有产品。
示例:屏幕1(从搜索栏):用户搜索"tropicana“,则结果集将是:
第一:纯果乐果汁混合果汁(类别)
第二名:果汁中的纯果乐苹果汁(类别)
第3名:纯果乐橙汁(类别)
第4名:果汁中的纯果乐菠萝汁(类别)
5:果汁中的纯果番石榴汁(类别)和所有其他与纯果乐相关的产品,无论任何类别
屏幕2(在选择"tropicana凤梨果汁“之后):用户根据选择的产品名称及其类别获得结果集(我在此屏幕中使用了分页):
第一:纯果乐混合果汁与所有基本细节
第二:加入纯果乐苹果汁和所有基本的细节
第三:纯果乐橙汁,包含所有基本细节
第四:纯果乐菠萝汁,包含所有基本细节
第5名:纯果番石榴汁,包含所有基本细节
但我想要的是,用户应该首先看到选定的产品详细信息,然后是所有其他相关产品:
示例:
第一:包含所有基本细节的纯果乐菠萝汁
第二:加入纯果乐苹果汁和所有基本的细节
第三:纯果乐橙汁,包含所有基本细节
第四:纯果乐混合果汁与所有基本细节
第5名:纯果番石榴汁,包含所有基本细节
我使用了这个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);
对于这一点,有人能提出什么好的选择吗?
发布于 2019-02-26 22:21:21
DROP TABLE IF EXISTS my_table;
CREATE TABLE my_table
(id SERIAL PRIMARY KEY
,product VARCHAR(255) NOT NULL
);
INSERT INTO my_table (product) VALUES
('tropicana pineapple juice'),
('tropicana apple juice'),
('tropicana orange juice'),
('tropicana mix fruit juice'),
('tropicana guava juice'),
('jolt pineapple juice'),
('jolt apple juice'),
('jolt orange juice'),
('jolt mix fruit juice'),
('jolt guava juice'),
('duff pineapple juice'),
('duff apple juice'),
('duff orange juice'),
('duff mix fruit juice'),
('duff guava juice'),
('acme pineapple juice'),
('acme apple juice'),
('acme orange juice'),
('acme mix fruit juice'),
('acme guava juice');
ALTER TABLE my_table ADD FULLTEXT(product);
SELECT *
, MATCH(product) AGAINST('tropicana pineapple') x
FROM my_table;
+----+---------------------------+-----------------+
| id | product | x |
+----+---------------------------+-----------------+
| 1 | tropicana pineapple juice | 2.4020363687754 |
| 2 | tropicana apple juice | 1.0619741682407 |
| 3 | tropicana orange juice | 1.0619741682407 |
| 4 | tropicana mix fruit juice | 1.0619741682407 |
| 5 | tropicana guava juice | 1.0619741682407 |
| 6 | jolt pineapple juice | 1.3400622005347 |
| 7 | jolt apple juice | 0 |
| 8 | jolt orange juice | 0 |
| 9 | jolt mix fruit juice | 0 |
| 10 | jolt guava juice | 0 |
| 11 | duff pineapple juice | 1.3400622005347 |
| 12 | duff apple juice | 0 |
| 13 | duff orange juice | 0 |
| 14 | duff mix fruit juice | 0 |
| 15 | duff guava juice | 0 |
| 16 | acme pineapple juice | 1.3400622005347 |
| 17 | acme apple juice | 0 |
| 18 | acme orange juice | 0 |
| 19 | acme mix fruit juice | 0 |
| 20 | acme guava juice | 0 |
+----+---------------------------+-----------------+
20 rows in set (0.00 sec)
https://stackoverflow.com/questions/54884671
复制相似问题