如何删除mysql中的所有重复行
这是特定id的“我的表角色\用户” 我想删除角色id和用户id的所有重复行,如果存在2条或更多记录,则只应存在1条最新记录,并应删除其他记录。我怎么写这个呢?你可以使用删除。。。从…起参加语法:如何删除mysql中的所有重复行,mysql,sql,datetime,join,sql-delete,Mysql,Sql,Datetime,Join,Sql Delete,这是特定id的“我的表角色\用户” 我想删除角色id和用户id的所有重复行,如果存在2条或更多记录,则只应存在1条最新记录,并应删除其他记录。我怎么写这个呢?你可以使用删除。。。从…起参加语法: 尝试以下方法: 下面的查询将为您提供按角色id和用户id分组的所有唯一记录的id SELECT MAX(id) FROM role_users GROUP BY role_id, user_id 注意这里的MAX函数可以获取最新创建的记录,假设id为auto_increment 在嵌套查询中使用它可
尝试以下方法: 下面的查询将为您提供按角色id和用户id分组的所有唯一记录的id
SELECT MAX(id) FROM role_users GROUP BY role_id, user_id
注意这里的MAX函数可以获取最新创建的记录,假设id为auto_increment
在嵌套查询中使用它可以删除所有其他重复记录
DELETE FROM role_users WHERE id NOT IN (SELECT MAX(id) FROM role_users GROUP BY role_id, user_id);
让我知道它是否有效:1054-未知列“r1”。在“in”on子句“@aashu1807:fixed”中创建。我使用此查询检查了按角色id、用户id从角色用户组中选择角色id、用户id、count1,并得到了重复rows@aashu1807尝试以下操作:@aashu1807:如果是,则意味着您在中为同一角色\u id创建了重复的值,用户id。此查询未给我任何响应。超出抛出错误锁等待超时时间;尝试重新启动事务
DELETE FROM role_users WHERE id NOT IN (SELECT MAX(id) FROM role_users GROUP BY role_id, user_id);