我知道我的问题有点怪,但我会尽量弄清楚的。

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/

10-10 03:53