mySql将行复制到同一个表中,键值已更改(不覆盖现有)

Mul*_*ner 10 mysql copy

如何从mySql表中复制选择的行并插入仅更改的键值.我可以在同一查询中进行选择和插入吗?

确切地说,我想要的是这样的:

表格列表,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

Dan*_*zyk 26

INSERT INTO your_table (ID, ISO3, TEXT) 
SELECT ID, 'JPN', TEXT
FROM your_table 
WHERE ID IN ( list_of_ id's )
Run Code Online (Sandbox Code Playgroud)

如果你想在一个单元格中更改一个值,只需硬键入值而不是从表格中选择(就像我用'JPN'那样).

  • 为此,似乎应删除VALUES (4认同)
  • 为了清楚起见,这就是我所拥有的:INSERT INTO my_table(col1,col2,col3)SELECT"mynewvalue",col2,col3 FROM my_table其中col2 ="value" (2认同)

Gor*_*onM 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 */);
Run Code Online (Sandbox Code Playgroud)