gpt4 book ai didi

mysql - 将具有多个值的 MySql 列转换为正确的表

转载 作者:行者123 更新时间:2023-11-29 12:37:10 25 4
gpt4 key购买 nike

我有一个定期发送给我的 CSV 文件形式的数据集。我想将这些数据导入到我的 MySql 数据库中并将其转换为一组适当的表。我遇到的问题是其中一个字段用于存储多个值。例如,该字段存储电子邮件地址。它可能是一个电子邮件地址,也可能有两个、三个或四个等。字段内容看起来像这样。 “user1@domain.com,user2@domain.com,user3@domain.com”。

我需要能够从每个字段中获取不确定数量的值,然后将它们添加到一个单独的表中,以便它们看起来像这样。

user1@domain.com  
user2@domain.com
user3@domain.com

我不知道如何才能做到这一点。谢谢您的帮助。

最佳答案

可能最简单的方法是插入第一封电子邮件,然后是第二封电子邮件,依此类推的暴力方法:

insert into newtable(email)
select substring_index(substring_index(emails, ',', 1), ',', -1)
from emails
where (length(replace(emails, ',', ',,')) - length(emails)) >= 1;

insert into newtable(email)
select substring_index(substring_index(emails, ',', 2), ',', -1)
from emails
where (length(replace(emails, ',', ',,')) - length(emails)) >= 2;

insert into newtable(email)
select substring_index(substring_index(emails, ',', 3), ',', -1)
from emails
where (length(replace(emails, ',', ',,')) - length(emails)) >= 3;

等等。

也就是说,从列表中提取第 n 个元素并将其插入到表中。 where 子句计算列表中逗号的数量,这是列表长度的代理。

您需要重复此操作,直到达到列表中电子邮件的最大数量。

关于mysql - 将具有多个值的 MySql 列转换为正确的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26596993/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com