Mysql用insert修改select结果


mysql modify select result with insert

我使用的是insert into table2 select from table1语句

table2table1有更多的域。除了select result中的值之外,我如何用其他值填充额外的字段?

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

表2中的

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

的例子:

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

table2中的

col4将使用表1中bin的部分值。表1中的Col3和"6512"。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. 如何在我的子选择中生成2个额外的列。
  2. 我如何在table1之前的一些列中操作数据我将上述操作的结果放入table2

点1:

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

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

这当然只是说明您可以为缺少的两列创建数据。

卷帘窗:

所以现在你需要阅读MySQL手册-字符串函数部分(我不是为你编写这个)

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

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

分别测试子句,直到它产生所需的输出。