我想通过提取一些列并将其放入另一个表来修改我的生产服务器中的表,问题是旧列有多个值,用逗号分隔,在新表中将通过查询放入多个记录。
我知道像 INSERT INTO user_emails(user_id, email) SELECT id, email FROM users
这样的方式,但它会复制字段的全部内容。
table users (old)
-----------------------------------------------------
id name emails (removed)
-----------------------------------------------------
1 A aaa@email.com, bbb@email.com
2 B ccc@email.com, ddd@email.com, eee@email.com
table user_emails (new table)
---------------------------------
id user_id email
---------------------------------
1 1 aaa@email.com
2 1 bbb@email.com
3 2 ccc@email.com
4 2 ddd@email.com
5 2 eee@email.com
有什么解决办法吗?谢谢
最佳答案
你应该从数据库中获取数据并存储到数组中,然后使用 explode()
函数拆分数据
<?php
$data=explode("," , $allEmails);
?>
现在 $data
被转换成这样的数组
Array ( [0] => abc@g.com [1] => a@yahoo.com [2] => z@y.com )
最后你可以使用插入查询插入到新表中
关于php - 将逗号分隔的数据拆分为多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47049270/