将一些数据从 sqlite 表复制到具有不同两列的同一个表中

Posted

技术标签:

【中文标题】将一些数据从 sqlite 表复制到具有不同两列的同一个表中【英文标题】:Copy some data from sqlite table to the same table with different two columns 【发布时间】:2013-09-26 06:29:01 【问题描述】:

假设我有包含 A、B、C、D、E、F 列的表 T A 是自增主键 我有一些数据 我想复制 B=x 的所有数据 我想将数据复制到同一个表,但同时将集合 A 复制为 null(因此它可以创建新的 ID)并将 B 更改为 y。 示例:

A,B,C,D,E,F  
1,1,9,8,3,9 
2,1,0,3,2,2 
3,1,7,1,1,8 
4,2,5,4,7,5 
5,2,6,5,8,4 
6,3,9,4,5,3 

 x = 2, y = 4  

结果:

A,B,C,D,E,F 
1,1,9,8,3,9  
2,1,0,3,2,2 
3,1,7,1,1,8 
4,2,5,4,7,5 
5,2,6,5,8,4 
6,3,9,4,5,3 
7,4,5,4,7,5  
8,4,6,5,8,4  

我找到了一个解决方案 创建表 Temp as select * from T where B = x 那么 更新 T 集 A = null, B = y 然后插入 T select * from Temp 然后删除表温度

我没有测试,但它应该可以工作,但是有没有更简单的方法或者可以将它写在一个查询中?

【问题讨论】:

解决方案不属于问题;为它创建一个答案。 【参考方案1】:

我找到了解决方案,也许不是最好的,但很好:

INSERT INTO T (A,B,C,D,E,F) SELECT null,y,C,D,E,F from T WHERE B = x

【讨论】:

以上是关于将一些数据从 sqlite 表复制到具有不同两列的同一个表中的主要内容,如果未能解决你的问题,请参考以下文章

将数据从一列插入另一个表的两列的过程

连接来自两个不同表的两列

将具有 LONG RAW 列的表中的数据从一个数据库复制到另一个数据库

在 SQLite 中组合两列的巧妙方法?

如何为具有映射到多个柴油列的自定义字段的类型派生 Queryable?

MySQL 检查两列的值,但具有首选列结果