Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何删除mysql中的所有重复行_Mysql_Sql_Datetime_Join_Sql Delete - Fatal编程技术网

如何删除mysql中的所有重复行

如何删除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的所有重复行,如果存在2条或更多记录,则只应存在1条最新记录,并应删除其他记录。我怎么写这个呢?

你可以使用删除。。。从…起参加语法:


尝试以下方法:

下面的查询将为您提供按角色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);