既存のレコードから任意のフィールドだけ書き換えてINSERTするSQL


更新のネタがないので。
どうやるのって聞かれてフィールド毎にサブクエリ書こうとした屑がいるらしいですよ・・・。

INSERT INTO tst_mst 
SET
    key1 ='2'
    ,field1 = (SELECT tst_mst1.field1 FROM tst_mst tst_mst1 WHERE KEY1 = '1')
    ,field2 = (SELECT tst_mst1.field2 FROM tst_mst tst_mst1 WHERE KEY1 = '1')


そんなことせんでも普通にやればできますよね。

INSERT INTO tst_mst 
    (
    key1
    ,field1
    ,field2
    )
SELECT 
    '3'
    ,field1
    ,field2 
FROM tst_mst 
WHERE 
    key1= 1


すいませんでした。