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

标签 mysql copy

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

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

表格列、ID 和 ISO3 是键:

+----+------+-------------------------+
| ID | ISO3 |          Text           |
+----+------+-------------------------+
|  1 | ENU  | A text in english       |
|  2 | ENU  | Another text in english |
|  3 | ENU  | bla bla                 |
|  1 | JPN  | 与えられた枠             |
+----+------+-------------------------+

插入后我希望我的表格如下所示:

+----+------+---------------------------+
| ID | ISO3 |           Text            |
+----+------+---------------------------+
|  1 | ENU  | A text in english         |
|  2 | ENU  | Another text in english   |
|  3 | ENU  | bla bla                   |
|  1 | JPN  | 与えられた枠               |
|  2 | JPN  | Another text in english   |
|  3 | JPN  | bla bla                   |
+----+------+---------------------------+

最佳答案

INSERT INTO your_table (ID, ISO3, TEXT) 
SELECT ID, 'JPN', TEXT
FROM your_table 
WHERE ID IN ( list_of_ id's )

如果您想更改一个单元格中的值,只需硬输入值而不是从表格中选择(就像我使用 'JPN' 所做的那样)。

关于mySql 将行复制到同一个表中,键值已更改(不覆盖现有的),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6549695/

相关文章:

Mysql结构及很多表之间的关系

MYSQL 数据库位置 Windows 10 PC

MYSQL 在两种不同条件下对行进行计数,如果计数相等则返回值作为输出

php - 检查该日期是否已存在于数据库中

c++ - ostream/ofstream 继承问题

linux - bash循环增加计数

mysql - SQL like 和 concat 不返回值

mysql - 将 MySQL 列中的值复制到另一列,但已格式化

JavaScript 按值复制数组

batch-file - 根据源文件夹内容批量替换特定文件前备份