MySQL: как вставить запись для каждого результата в SQL-запрос?

Скажем, у меня есть выбор

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 . Тем не менее, ситуация с facepalm, так как это легко 🙂 Спасибо!

Проще всего это:

 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; 
 INSERT INTO Config (id, customer_id, domain) SELECT DISTINCT id, customer_id, 'www.example.com' FROM config 

Документация MySQL для этого синтаксиса приведена здесь:

http://dev.mysql.com/doc/refman/5.1/en/insert-select.html

 INSERT INTO config (id, customer_id, domain) SELECT id, customer_id, 'www.example.com' FROM ( SELECT DISTINCT id, customer_id, domain FROM config WHERE type = 'foo' ) x; 

EDIT – после прочтения комментария на ответ @ Krtek.

Я предполагаю, что вы запрашиваете обновление вместо вставки –

 update config set domain = 'www.example.com' 

Это приведет к обновлению всех существующих записей в таблице конфигурации с доменом как «www.example.com» без создания дубликатов записей.

СТАРЫЙ ОТВЕТ

вы можете использовать что-то вроде:

 INSERT INTO config (id, customer_id, domain) select id, customer_id, domain FROM config 

Примечание: – Это не будет работать, если у вас есть идентификатор в качестве первичного ключа

Выполните эту инструкцию SQL:

 -- Do nothing. 

Вы хотите выбрать отдельные строки из «config» и вставить те же самые строки в одну и ту же таблицу. Они уже там. Нечего делать.

Если вы просто не хотите обновлять некоторые или все значения в столбце «домен». Для этого потребуется инструкция UPDATE, которая действительно что-то сделала.