今回は同じテーブルに対してWHERE句でレコードを絞り込みをしてカラムの値を変更してSELECT文でレコードの値を取得してINSERTをする方法を解説します。

テーブルの構成

テーブル名を「demo」とします。

カラムは下記があるとします。

  • name
  • age
  • sex
  • birth

nameカラムの値が「john」の値を「あべ」に変えたレコードをdemoテーブルにINSERTする状況を考えます。

SQL文

下記になります。

INSERT INTO demo (
  name,
  age,
  sex,
  birth
) SELECT
  'あべ',
  age,
  sex,
  birth,
FROM demo
WHERE name = 'john'
;

nameカラムの値を「john」から「あべ」に変えたいのでWHERE句を使ってnameカラムの値がjohnのレコードを取得してjohnをあべに変えたレコードをSELECTで取得すればいいです。