mysql用insert修改select结果

时间:2014-06-11 13:05:14

标签: php sql mysqli-multi-query

我正在使用insert into table2 select from table1声明。

table2的字段数少于table1。除了select result中的值之外,我如何用其他值填充额外的字段。

table1col1, col2, col3 table2 has col1, col2, col3, col4, col5, col6

表2中的

col4和col5将使用col2和col3中的修改值。

示例:

tabl1.col2的值为tag 6512tabl1.col3的值为bin location

col4中的

table2将使用table1.col3中的部分值bin和" 6512"来自table1.col2
因此table2.col4将为bin 6512

sql:

insert into table2(col1, col2, col3, col4, col5) select * from table1 (and add values for col4 and col5) 

感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

好的答案可以分解为我认为的2部分。

  1. 如何在子选择中生成2个额外列。
  2. 如何在table1之前的某些列中操作数据 我将所述操作的结果放入table2
  3. 第1点:

    在您的子选择中,您可以像这样简单地生成3个额外的列。

    INSERT INTO table2 (col1, col2, col3, col4, col5) 
                SELECT *, 'dummy1', 'dummy2' FROM table1
    

    这当然只是证明您可以为2个缺失列创建数据。

    POINT2:

    所以现在你需要阅读MySQL Manual - String functions section(我不是为你编码)

    在这里,您将看到您可以代替仅为缺少的列硬编码数据,使用table1中任何列的值并从中选择位并将位连接在一起。

    寻找SUBSTRING和INSTR等。这将允许您从现有列构建缺少的字段。

    单独测试子选择子句,直到它产生所需的输出。