我正在使用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
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)
感谢任何帮助。
答案 0 :(得分:0)
好的答案可以分解为我认为的2部分。
table1
之前的某些列中操作数据
我将所述操作的结果放入table2
第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等。这将允许您从现有列构建缺少的字段。
单独测试子选择子句,直到它产生所需的输出。