MySQL 重命名重复列的查询
MySQL Query to rename duplicate column
多亏了这个问题Rename Mysql Duplicate Value我才能够想出这个查询来消除重复的行。
UPDATE table1
inner join (SELECT OBJECTID,CONCAT(IDENT,'_1') as IDENT FROM table1
GROUP BY IDENT HAVING COUNT(*) > 1) t
on t.OBJECTID = table1.OBJECTID
SET table1.IDENT = t.IDENT;
这很好用,但我只想重命名 IDENT 列重复且 NAME 列不同的行。任何想法如何做到这一点?
将分组更改为 NAME
和 IDENT
。
UPDATE table1
JOIN (
SELECT MAX(objectid) AS max_id, name, CONCAT(ident, '_1') AS new_ident
FROM table1
GROUP BY name, ident
HAVING COUNT(*) > 1
) AS t ON t.max_id = table1.objectid
SET table1.ident = t.new_ident
多亏了这个问题Rename Mysql Duplicate Value我才能够想出这个查询来消除重复的行。
UPDATE table1
inner join (SELECT OBJECTID,CONCAT(IDENT,'_1') as IDENT FROM table1
GROUP BY IDENT HAVING COUNT(*) > 1) t
on t.OBJECTID = table1.OBJECTID
SET table1.IDENT = t.IDENT;
这很好用,但我只想重命名 IDENT 列重复且 NAME 列不同的行。任何想法如何做到这一点?
将分组更改为 NAME
和 IDENT
。
UPDATE table1
JOIN (
SELECT MAX(objectid) AS max_id, name, CONCAT(ident, '_1') AS new_ident
FROM table1
GROUP BY name, ident
HAVING COUNT(*) > 1
) AS t ON t.max_id = table1.objectid
SET table1.ident = t.new_ident