首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何复制不包括目标为null的值的行?

如何复制不包括目标为null的值的行?
EN

Stack Overflow用户
提问于 2018-06-07 01:57:40
回答 2查看 36关注 0票数 0

如何编写SQL查询来将第1行中的所有列值复制到第2行,但不包括第2行中为null的列?

代码语言:javascript
运行
复制
id  oldNum  newNum  status     time
1   205     333    complete     2018-06-05 13:14:37
2   209     444     null        2018-06-05 13:14:37

预期的结果将是

代码语言:javascript
运行
复制
id  oldNum  newNum  status     time
1   205     333    complete     2018-06-05 13:14:37
2   205     333     null        2018-06-05 13:14:37

状态保持为空。

EN

回答 2

Stack Overflow用户

发布于 2018-06-07 02:04:49

insert select可能就是您要找的

代码语言:javascript
运行
复制
insert into your_table
select * from your_table where id=1
where id = 2

或者保留该空值。

代码语言:javascript
运行
复制
INSERT INTO your_table (id,oldNum,newNum,time)
SELECT id,oldNum,NewNum,time FROM your_table where id=1
WHERE id=2;
票数 0
EN

Stack Overflow用户

发布于 2018-06-07 02:06:14

代码语言:javascript
运行
复制
CREATE TEMPORARY TABLE tmptable_1 SELECT * FROM table WHERE primarykey = 1;
UPDATE tmptable_1 SET primarykey = NULL;
INSERT INTO table SELECT * FROM tmptable_1;
DROP TEMPORARY TABLE IF EXISTS tmptable_1;

作为临时表,不应该有超过一条记录,所以您不必担心主键。将其设置为null允许MySQL自己选择值,因此不存在创建重复的风险。

如果您想超级确定您只插入一行,您可以在insert INTO行的末尾添加LIMIT 1。

请注意,我还将主键值(在本例中为1)附加到我的临时表名中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50726732

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档