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

时间:2017-11-01 06:20:00

标签: 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

任何解决方案?谢谢

1 个答案:

答案 0 :(得分:1)

你应该从DB获取数据并存储到数组中然后使用explode()函数来分割数据

<?php
   $data=explode("," , $allEmails);
?>

现在$data会像这样转换为数组

Array ( [0] => abc@g.com [1] => a@yahoo.com [2] => z@y.com )

最后,您可以使用插入查询

插入新表