MYSQL - 根据ID插入多行concat的结果

时间:2014-08-19 05:56:01

标签: mysql sql

我进行了搜索和搜索,但我认为我错过了一些东西。我想要完成的是将concat的结果保存在单个表中,其中多个行基于ID组合。

我的表只有3列: ID - Order_items_id - 自定义

ID是唯一的,但从长远来看无关紧要。

我想要完成的是使用相同的order_item_id连接所有行。 concat仅适用于customizations

我的桌子的一个例子:

ID - order_item_id - customization
0    1231            19;1
1    1231            75;1
2    2345            10;5

我可以通过以下查询得到我的结果以显示我想要的方式:

SELECT `order_item_id`, group_concat(`customizations` separator ';')
FROM `ojs_order_ing_export`
GROUP BY `order_item_id`

ID - order_item_id - customization
0    1231            19;1;75;1
2    2345            10;5

现在我对如何在第3列中插入此查询的结果感到有些困惑,或者更新customization列以保存concat查询的结果。

这样做的目的是将基于customization的{​​{1}}中的所有数据分组到一行中,这样我就可以将order_item_id列与另一个表一起加入。

提前谢谢。

1 个答案:

答案 0 :(得分:0)

我不确定我是否完全理解你的目标,但看起来你应该像INSERT-SELECT声明那样:

INSERT INTO my_new_table (order_item_id, order_item_customizations)
SELECT `order_item_id`, group_concat(`customizations` separator ';')
FROM `ojs_order_ing_export`
GROUP BY `order_item_id`

或者,例如

CREATE TABLE my_new_table
SELECT `order_item_id`, group_concat(`customizations` separator ';')
FROM `ojs_order_ing_export`
GROUP BY `order_item_id`

如果你想拥有相同的表,但使用"合并"值 - 只需交换原始表和新表。