【发布时间】:2015-06-12 13:22:36
【问题描述】:
我目前有一个视图,其中有一个名为 alt_email_contact 的列,我使用 group_concat 函数来获取与一个联系人关联的多封电子邮件。但是,我希望能够提取每封电子邮件并为每封电子邮件创建一个单独的列。
例子:
id email
1 SkyW@gmail.com, SW@gmail.com, WW@gmail.com, WalterW@gmail.com
电子邮件的数量可能会从一个用户更改为另一个用户,因此每个用户不会总是有四封电子邮件。我想为每封电子邮件创建一个新列,如下所示:
id email_1 email_2 email_3 email_4
1 SkyW@gmail.com SW@gmail.com WW@gmail.com WalterW@gmail.com
(我正在使用 phpmyadmin)我希望能够修改我的视图以包含每个用户的可变数量的电子邮件。
【问题讨论】:
-
你为什么要这样做?将每封备用电子邮件放在自己的行中有什么问题(即根本没有
group_concat)?这比拥有X列数(在进行初始查询之前不知道X)更具可扩展性。 -
SQL 查询具有固定数量的列。您想要多少封电子邮件?
-
@MikeBrant 我将这些字段导入另一个数据库,为此我必须将一个字段映射到另一个字段。因此,我需要与一个联系人关联的所有电子邮件都在一行中(并且每封电子邮件都在单独的列中)。
-
@GordonLinoff 我想要 5 封电子邮件,但可以少于 5 封
-
@dantheman 在目标数据库中,为什么需要将这些值全部放在一行中?你本质上试图做的不是关系数据库要做的事情。
标签: mysql sql database phpmyadmin group-concat