如何从mySql表中复制选择的行并插入仅更改的键值。我可以在同一个查询中进行选择和插入吗?
准确地说,我想要的是这样的:
表格cols,ID和ISO3是键:
[ID] [ISO3] [文字]
1,ENU,英文文本
2,ENU,英文的另一个文本
3,ENU,bla bla
1,JPN,与えられた枠
插入后我希望我的桌子看起来像这样:
1,ENU,英文文本
2,ENU,英文的另一个文本
3,ENU,bla bla
1,JPN,与えられた枠
2,JPN,另一个英文文本
3,JPN,bla bla
答案 0 :(得分:24)
INSERT INTO your_table (ID, ISO3, TEXT) SELECT ID, 'JPN', TEXT FROM your_table WHERE ID IN ( list_of_ id's )
如果你想改变一个单元格中的值,只需硬键入值而不是从表中选择(就像我用'JPN'那样)。
答案 1 :(得分:5)
如果您的密钥是auto_increment,并且您有一个类似primary_key | col1 | col2 | col3
的表结构,那么您可以按照
INSERT INTO table (
col1, col2, col3
) SELECT col1, col2, col3
FROM table
WHERE primary_key IN(1, 2, 45, 54, 774, 4434 /* etc */);
答案 2 :(得分:0)
你可以做到
insert into your_table (SELECT field1, field2,(changed_value_for_field3) as field3 FROM your_table where your_condition);