我需要从一个表中读取数据并在MySQL数据库的另一个表中插入多行.
表1看起来像:
ID, name, e-mail, phone, city, ..., ....
Run Code Online (Sandbox Code Playgroud)
在表2中,我需要插入如下数据:
(row1) ID, "name", name
(row2) ID, "e-mail, e-mail
(row3) ID, "phone", phone
...
...
Run Code Online (Sandbox Code Playgroud)
表1有大约3000行
我想我需要使用某种foreach或do..while但是找不到任何有效的东西.任何人都可以告诉我如何做到这一点?
如果我正确理解了您的问题,您希望对返回多行的table1执行查询,然后在单个循环中将这些行插入到table2中.这是INSERT INTO SELECT声明:
INSERT INTO table2
(name, email, phone)
SELECT name, email, phone
FROM table1;
Run Code Online (Sandbox Code Playgroud)
它可以修改为获取特定结果:
INSERT INTO table2
(name, email, phone)
SELECT name, email, phone
FROM table1
WHERE name = 'target person';
Run Code Online (Sandbox Code Playgroud)
有关更多信息,请访问http://dev.mysql.com/doc/refman/5.7/en/insert-select.html和http://www.w3schools.com/sql/sql_insert_into_select.asp.
编辑:
根据您的评论,听起来您正在尝试这样做: SQL将值拆分为多行.
我不能想到一个情况下,你会真正要做到这一点,你可以按原样访问您现有的表中的所有数据,而这似乎是不好的做法,在你请求的方式来分割数据.但是,上述主题中的解决方案应该适用于您要执行的操作.
最后,您可能想要了解实际检索数据的方式.修改该代码将是一个更好的主意:)