[英]mySql copy rows into same table with key value changed (not overwriting existing)
如何從 mySql 表中復制選擇的行並插入僅更改了鍵值。 我可以做一個 select 並插入同一個查詢嗎?
准確地說,我想要的是這樣的:
表 cols、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 ”所做的那樣)。
如果您的鍵是 auto_increment,並且您的表結構類似於primary_key | col1 | col2 | col3
primary_key | col1 | col2 | col3
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 */);
你可以做
insert into your_table (SELECT field1, field2,(changed_value_for_field3) as field3 FROM your_table where your_condition);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.