-1

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

table2有几个字段比table1. 除了来自选择结果的值之外,我如何用其他值填充额外的字段。

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

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

例子:

tabl1.col2有价值有价值tag 6512_tabl1.col3bin location

col4intable2将使用 table1.col3 中的部分值bin和 table1.col2 中的“6512”,
所以table2.col4将是bin 6512

sql:

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

任何帮助表示赞赏。

4

1 回答 1

0

好的,我认为答案可以分为两部分。

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

第 1 点:

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

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

这当然只是表明您可以为 2 个缺失的列发明数据。

要点2:

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

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

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

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

于 2014-06-11T15:49:53.893 回答