我试图在mysql数据库中复制一行,同时在重复行的一个字段中替换部分字符串。
我已经想出了如何:
复制一行
INSERT INTO account_external_ids
SELECT * FROM account_external_ids
where external_id like '%gerrit:%';
执行替换字符串,但无法弄清楚如何在同一查询中执行这两项操作。
UPDATE account_external_ids
SET external_id = REPLACE(external_id,'gerrit:','username:')
WHERE external_id like '%gerrit%';
但无法弄清楚如何在同一个查询中执行这两项操作,例如:
INSERT INTO account_external_id
select * from account_external_ids
set external_id = replace(external_id, 'gerrit:', 'username:')
where external_id like '%gerrit%';
任何指针都会很棒。
感谢
答案 0 :(得分:1)
您必须明确列出所有列,如果您要修改任何列,则无法使用SELECT *
INSERT INTO account_external_id (col1, col2, col3, col4, external_id)
SELECT col1, col2, col3, col4, REPLACE(external_id, 'gerrit:', 'username:')
FROM account_external_ids
WHERE external_id LIKE '%gerritt:%'