如何编写SQL查询来将第1行中的所有列值复制到第2行,但不包括第2行中为null的列?
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预期的结果将是
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状态保持为空。
发布于 2018-06-07 02:04:49
insert select可能就是您要找的
insert into your_table
select * from your_table where id=1
where id = 2或者保留该空值。
INSERT INTO your_table (id,oldNum,newNum,time)
SELECT id,oldNum,NewNum,time FROM your_table where id=1
WHERE id=2;发布于 2018-06-07 02:06:14
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)附加到我的临时表名中。
https://stackoverflow.com/questions/50726732
复制相似问题