acm*_*cme 78 mysql sql loops insert
说我有一个选择
SELECT DISTINCT id, customer_id, domain FROM config WHERE type = 'foo';
Run Code Online (Sandbox Code Playgroud)
返回一些记录.
如何在结果集中为到达行执行插入操作
INSERT INTO config (id, customer_id, domain) VALUES (@id, @customer_id, 'www.example.com');
Run Code Online (Sandbox Code Playgroud)
这里@id和@customer_id在结果中的行的字段中设置?
编辑:我不想只复制它,而是在字段中插入一个新值domain.然而,一个facepalm - 情况,因为它很容易;-)谢谢!
krt*_*tek 147
就这么简单:
INSERT INTO config (id, customer_id, domain)
SELECT DISTINCT id, customer_id, domain FROM config;
Run Code Online (Sandbox Code Playgroud)
如果您想要" www.example.com"作为域名,您可以:
INSERT INTO config (id, customer_id, domain)
SELECT DISTINCT id, customer_id, 'www.example.com' FROM config;
Run Code Online (Sandbox Code Playgroud)
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;
Run Code Online (Sandbox Code Playgroud)
INSERT INTO Config (id, customer_id, domain)
SELECT DISTINCT id, customer_id, 'www.example.com' FROM config
Run Code Online (Sandbox Code Playgroud)
这种语法的MySQL文档在这里:
http://dev.mysql.com/doc/refman/5.1/en/insert-select.html