请注意:我我询问我想要回答的问题。我知道这个问题意味着数据库设置不佳。因此,我将对任何建议改变表格设置方式的答案进行投票。
我需要复制一堆行,同时更改一个值。
name col1 col2
dave a nil
sue b nil
sam c 5
需要成为:
name col1 col2
dave a nil
dave a a
sue b nil
sue b a
same c 5
此表格中col2 is null
所有条目的IE,在表格中创建一个新条目,name
和col1
被复制,col2
为{{1} }}
答案 0 :(得分:17)
使用:
INSERT INTO table
(name, col1, col2)
SELECT t.name, t.col1, 'a'
FROM TABLE t
WHERE t.col2 IS NULL
假设name
或col1
列都不是主键,或者两者都有唯一约束。
答案 1 :(得分:3)
这样做吗?
INSERT INTO yourtable
(SELECT name, col1, 'a'
FROM yourtable
WHERE col2 is NULL);
答案 2 :(得分:0)
如果列数很大,您可以将所需数据复制到临时表中,根据需要更改临时表中的数据,然后将临时表的内容复制回原始表中,并删除临时表。