我想通过提取一些列并将其放入另一个表来修改我的生产服务器中的表,问题是旧列有多个值用逗号分隔,并且在新表中将通过查询放入多个记录中。
我知道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
任何解决方案?谢谢
答案 0 :(得分:1)
你应该从DB获取数据并存储到数组中然后使用explode()
函数来分割数据
<?php
$data=explode("," , $allEmails);
?>
现在$data
会像这样转换为数组
Array ( [0] => abc@g.com [1] => a@yahoo.com [2] => z@y.com )
最后,您可以使用插入查询
插入新表