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 列不同的行。任何想法如何做到这一点?

将分组更改为 NAMEIDENT

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