美好的一天!
我的狮身人面像搜索有些麻烦。我想搜索产品参数,但不能理解我该怎么做。
例如。
产品表
product_id INT
product_name STRING
产品参数表
param_id INT
product_id INT
param_name STRING
param_value STRING
这个数据例如:
产品
1 TV
2 Player
PARAMS
1 1 Size Big
2 1 Color Red
3 1 Weight 3.0
4 2 Size Small
5 2 Color Brown
6 2 Length 20
我想搜索尺寸小或颜色为红色
的所有产品答案 0 :(得分:1)
有许多不同的方法。也许最简单的一个:
sql_query = SELECT product_id, product_name, \
GROUP_CONCAT(CONCAT(param_name,'_',param_value)) AS params \
FROM products LEFT JOIN params USING (product_id) \
GROUP BY product_id \
ORDER BY NULL
(多数民众赞成mysql查询,但sql-server不能那么多不同)
然后可以执行(SphinxQL)查询,如
SELECT * FROM index WHERE MATCH('keyword @params (Size_Small | Color_Red)');
(如果你的任何一个参数有空格,可能需要使用REPLACE更改为undertores,将它们保持为一个单词 - 或使用"短语语法")