php - 将逗号分隔的数据拆分为多行

标签 php mysql sql insert

我想通过提取一些列并将其放入另一个表来修改我的生产服务器中的表,问题是旧列有多个值,用逗号分隔,在新表中将通过查询放入多个记录。 我知道像 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/

相关文章:

php - strtotime(PHP 日期函数)的算法如何工作?

phpexcel 将php内的数据整理

mysql - 我可以使用 yii CSqlDataProvider 执行两个或多个 sql 语句吗?

sql - if/case语句使用sql查询问题

php - 如何查询laravel采集结果

Mysql显示四(4)位数字

php - 添加一个 div 阅读更多 wordpress

php - docker-撰写单个文件卷共享

mysql - 用于选择包含 "Unit Separator"字符的字符串的 SQL 查询

mysql - 在联接表中使用 Max 选择