MySQL - 将逗号分隔值移动到新表列

时间:2010-08-09 18:32:55

标签: sql mysql

我在名为tags的MySQL列中有一行。

在标签中,我有一系列以逗号分隔的关键字。对于这个例子,我们以冰淇淋为主题.. mmmmmmm .... Ice Cream :)。

所以在我的标签行中我有:

Vanilla, Strawberry, Coconut, Chocolate, Rocky Road, etc.

我在同一张桌子上还有一个名为Ice Cream Shop的专栏。每个只有一个商店名称和身份证。

因此表格中的整个记录​​将包含:

商店ID:1 店铺名称:Yum Yum 标签:香草,草莓,椰子,巧克力,洛基路

现在这里是踢球者...在上面提到的表格中,表格中有更多行需要保留它们。

我想要做的是获取标签方面并将其移动到一个全新的表格,其中只包含我想要的信息。

基本上我需要这样做:

  • 将以下数据从ID行,商店行和标签行复制到新表标题Ice Cream中。

然后能够获取标签行中的所有标签,并将每个标签放在自己的行中,并带有相应的ID等。

所以:

Table_Name 1

ID | Shop    | Tags
---------------------
1  | Yum Yum | Vanila, Strawberry, Chocolate, Coconut

New_Table(可能是命名标签)

ID | Tag        | Shop
------------------------------
1  | Vanila     | Yum Yum
2  | Strawberry | Yum Yum
3  | Chocolate  | Yum Yum
4  | Coconut    | Yum Yum

这可能吗?如果是这样,我怎样才能在MySQL中这样做?

2 个答案:

答案 0 :(得分:0)

看一下讨论here。它是关于编写与您的目的相同的存储过程。

答案 1 :(得分:0)

     SELECT shop,
     GROUP_CONCAT(DISTINCT tag
               ORDER BY tag SEPARATOR ',')
     FROM Table
     GROUP BY shop;