0

所以我有一个包含联系人的数据库。每个联系人都有一个文件夹字段,我在应用程序中显示时用于对它们进行分类,我的 ID 是来自服务器和文件夹类型的唯一 ID 的组合。我想要做的是获取我表中的每个联系人并将它们复制一次,并将更新的文件夹值设置为“all”。

所以如果我只有 2 个联系人,如果在 INSERT 之前看起来像这样

---------------------------------------------------
id         |   name |   folder |   area |  number |
---------------------------------------------------
1abfav     |  John  |   fav    |   111  | 1234567 |
2cdarchive |  Susan |  archive |   111  | 6785678 |

在插入之后我会有

---------------------------------------------------
id         |   name |   folder |   area |  number |
---------------------------------------------------
1abfav     |  John  |   fav    |   111  | 1234567 |
2cdarchive |  Susan |  archive |   111  | 6785678 |
1aball     |  John  |   all    |   111  | 1234567 |
2cdall     |  Susan |   all    |   111  | 6785678 |
4

1 回答 1

0

INSERT INTO ... SELECT

insert into contacts(id,name,folder,area,number)
select 
  substr(id, 1, length(id) - length(folder)) || 'all',
  name,
  'all',
  area,
  number
from contacts;

请参阅演示
结果:

| id         | name  | folder  | area | number  |
| ---------- | ----- | ------- | ---- | ------- |
| 1abfav     | John  | fav     | 111  | 1234567 |
| 2cdarchive | Susan | archive | 111  | 6785678 |
| 1aball     | John  | all     | 111  | 1234567 |
| 2cdall     | Susan | all     | 111  | 6785678 |
于 2019-11-22T19:18:47.477 回答