SQL Query使用SELECT INSERT多行

JEr*_*rne -2 mysql sql-insert

我需要从一个表中读取数据并在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但是找不到任何有效的东西.任何人都可以告诉我如何做到这一点?

Obs*_*Age 5

如果我正确理解了您的问题,您希望对返回多行的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.htmlhttp://www.w3schools.com/sql/sql_insert_into_select.asp.

编辑:

根据您的评论,听起来您正在尝试这样做: SQL将值拆分为多行.

我不能想到一个情况下,你会真正做到这一点,你可以按原样访问您现有的表中的所有数据,这似乎是不好的做法,在你请求的方式来分割数据.但是,上述主题中的解决方案应该适用于您要执行的操作.

最后,您可能想要了解实际检索数据的方式.修改该代码将是一个更好的主意:)