注意:私am私が答えたい質問をします。この質問は、データベースの設定が不十分であることを意味します。したがって、テーブルの設定方法を変更することを提案する回答はすべて投票します。
1つの値を変更しながら、一連の行を複製する必要があります。
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
がa
であるテーブルに新しいエントリを作成します。
使用する:
INSERT INTO table
(name, col1, col2)
SELECT t.name, t.col1, 'a'
FROM TABLE t
WHERE t.col2 IS NULL
これは、name
もcol1
列は主キーであるか、どちらかに一意の制約があります。
これはそれをしますか?
INSERT INTO yourtable
(SELECT name, col1, 'a'
FROM yourtable
WHERE col2 is NULL);
列の数が多い場合は、必要なデータを一時テーブルにコピーし、必要に応じて一時テーブルのデータを変更してから、一時テーブルの内容を元にコピーして、一時テーブルを削除できます。