我使用的是insert into table2 select from table1
语句
table2
比table1
有更多的域。除了select result中的值之外,我如何用其他值填充额外的字段?
table1
有col1, col2, col3 table2 has col1, col2, col3, col4, col5, col6
col4和col5将使用修改后的col2和col3的值。
的例子:
tabl1.col2
的值为tag 6512
, tabl1.col3
的值为bin location
table2
中的 col4
将使用表1中bin
的部分值。表1中的Col3和"6512"。col2
所以table2.col4
就是bin 6512
insert into table2(col1, col2, col3, col4, col5) select * from table1 (and add values for col4 and col5)
好的,我认为答案可以分为两部分。
- 如何在我的子选择中生成2个额外的列。
- 我如何在
table1
之前的一些列中操作数据我将上述操作的结果放入table2
点1:
在子选择中,您可以像这样简单地生成3个额外的列。
INSERT INTO table2 (col1, col2, col3, col4, col5)
SELECT *, 'dummy1', 'dummy2' FROM table1
这当然只是说明您可以为缺少的两列创建数据。
卷帘窗:
所以现在你需要阅读MySQL手册-字符串函数部分(我不是为你编写这个)
在这里,您将看到,您可以使用table1中任何列的值,并从中选择位并将位连接在一起,而不是仅仅为缺失的列硬编码数据。
查找SUBSTRING和INSTR等等。这将允许您从现有列中构建缺失的字段。
分别测试子句,直到它产生所需的输出。