mysql 更新表中的一个重复列

wfveoks0  于 2023-05-16  发布在  Mysql
关注(0)|答案(1)|浏览(84)

我正在尝试更新表中重复的用户名记录。下面是我提出的更新,但这会更新所有重复的记录。我怎么能只更新一个呢?

update xxx_users set username = CONCAT(username,"dup") where exists(
 SELECT username, COUNT(username) FROM xxx_users GROUP BY username HAVING COUNT(username) > 1);

我感谢任何可能提供的帮助。谢谢!

fd3cxomn

fd3cxomn1#

假设你的xxx_users表有一个基于自动递增id的主键,你可以尝试:

update xxx_users u
     inner join  (
        select min(id)  id
        from xxx_users 
        group by username
        having count(*)>1

     ) t ON t.id  = u.id
     set username = CONCAT(username,"dup")

相关问题