1. ホーム
  2. mysql

[解決済み] MySQL SQLクエリの各結果に対してレコードを挿入するには?

2023-05-18 05:36:19

質問

例えば

SELECT DISTINCT id, customer_id, domain FROM config WHERE type = 'foo';

で、いくつかのレコードを返します。

のように、結果セット内のリーチ行に対して挿入を行うにはどうすればよいでしょうか。

INSERT INTO config (id, customer_id, domain) VALUES (@id, @customer_id, 'www.example.com');

ここで @id@customer_id は結果セット内の行のフィールドですか?

edit: ただ複製するだけでなく、フィールドに新しい値を挿入するようにしました。 domain に新しい値を挿入しました。それにもかかわらず、それは簡単なので、顔面蒼白の状況;-) ありがとうございます!

どのように解決するのですか?

このように簡単です。

INSERT INTO config (id, customer_id, domain) 
SELECT DISTINCT id, customer_id, domain FROM config;

もし、あなたが" www.example.com をドメインにしたい場合は、:

INSERT INTO config (id, customer_id, domain) 
SELECT DISTINCT id, customer_id, 'www.example.com' FROM config;