MySql 复制一行并替换副本中的部分字段
MySql Duplicate a row and replace part of a field in the duplicate
我试图在 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 数据库中复制一行,同时在复制行的一个字段中替换字符串的一部分。
我已经知道如何:
复制一行
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:%'