我试图在 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%';
任何指针都会很棒。
谢谢
最佳答案
您必须明确列出所有列,如果要修改任何列,则不能使用 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:%'
关于MySql复制一行并替换副本中的部分字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29541721/