【问题标题】:MySQL - Move Comma Separated Values to new Table ColumnMySQL - 将逗号分隔值移动到新表列
【发布时间】:2010-08-09 18:32:54
【问题描述】:

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

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

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

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

我在同一张表中还有一个名为 Ice Cream Shop 的列。每个只有一个商店名称和一个 ID。

所以表中的整条记录都会有:

店铺编号:1 店铺名称:百胜 标签:香草、草莓、椰子、巧克力、洛基路

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

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

所以基本上我需要这样做:

  • 将以下数据从 ID Row、Shop Row 和 Tags 行复制到新表 Title Ice Cream。

然后就可以取出标签行内的所有标签,并将每个标签放在自己的行中,并带有相应的ID等。

所以:

表名 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 中执行此操作?

【问题讨论】:

    标签: sql mysql


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:
           SELECT shop,
           GROUP_CONCAT(DISTINCT tag
                     ORDER BY tag SEPARATOR ',')
           FROM Table
           GROUP BY shop;
      

      【讨论】:

      • 这与问题所寻找的相反
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-07-03
      • 2012-04-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-06
      相关资源
      最近更新 更多