我知道我的问题有点怪,但我会尽量弄清楚的。
products_table
ID | code | product_variants_id | product_name | variants | variants_value
1 | 1| 123451 | beer cake | color | blue
2 | 1| 123451 | beer cake | temperature | cold
3 | 1| 123451 | beer cake | weight | 0.5
4 | 2| 123453 | ad wrap | color | green
5 | 2| 123453 | ad wrap | weight | 1
这是我的最终产品表,现在显示的产品,这是我所做的。
SELECT xx.code, GROUP_CONCAT(xx.variants) AS variants,
GROUP_CONCAT(xx.variants_value) AS variants_value ,
xx.product_name, xx.product_variants_id
FROM products_table xx
GROUP BY xx.product_variants_id
在这个查询之后,我的表看起来像这样
code | product_variants_id | product_name | variants | variants_value
1 | 123451 | beer cake | color,temperature,weight| blue,cold,0.5
2 | 123453 | ad wrap | color,weight | green,1
现在我可以简单地浏览这个表,逐个获取产品并显示它的变体。
我真正的问题是,有没有办法把我刚得到的这些连接结果联系起来?
例如:
在服务器端,我可以得到变量
color
,如何得到color
的相应值?我的方法是什么?
最佳答案
首先将变量和相应的值连接在一起,然后执行group_concat()
:
SELECT xx.code, GROUP_CONCAT(concat(xx.variants,':',xx.variants_value)) AS variants_and_values, xx.product_name, xx.product_variants_id
FROM products_table xx
GROUP BY xx.product_variants_id, xx.product_name, xx.code
关于mysql - mysql中group_concat列之间的关系,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40164534/