![]() |
1
4
您只能用一个查询来解决它。 如果您的表具有以下结构:
您可以这样做(这将删除基于用户名的所有重复用户,其ID大于该用户名的较小ID):
它起作用了,我已经用类似的方法删除了重复项。 |
![]() |
2
5
您可以使用三个SQL执行此操作:
|
![]() |
3
1
此删除脚本(SQL Server语法)应该可以工作:
|
![]() |
4
1
我假设您具有如下结构:
由于MySQL不能在使用删除的目标表的删除查询中使用sub-select,因此需要对temporary执行magic操作。
我知道查询有点复杂,但它可以完成工作,即使用户表有两列以上。 |
![]() |
5
1
您需要对如何使用表中的数据稍微谨慎一点。如果这确实是一个用户表,那么可能还有其他表fk指向id列。在这种情况下,您需要更新这些表以使用您选择要保留的ID。 如果它只是一个独立的表(没有表引用它)
从其他表链接的用户表 创建临时表,包括一个链接表,其中保存了其他表应该引用的所有旧ID和相应的新ID。
浏览所有引用用户表的表,并更新其FK列(可能称为userid)以指向您选择的新唯一ID,如…
最后返回到用户表并删除不再引用的重复项:
清理这些TMP表:
|
![]() |
6
0
一个非常简单的解决方案是
编辑:我错了,我没有读到最后一行:“我想找到重复的条目”。 |
![]() |
7
0
我会得到所有的结果,将它们放入一个ID和值数组中。使用php函数计算重复数据,记录数组中的所有ID,并使用这些值删除记录。 |
![]() |
8
0
我不知道你的数据库模式,但最简单的解决方案似乎是
|
![]() |
9
0
临时桌是一个很好的解决方案,但我想提供一个
|
![]() |
10
0
根据表结构选择3列,并根据需要应用条件。 从用户中选择user.userid、user.username user.password作为用户 按user.userid、user.username分组 具有(count(user.username)>1)); |
![]() |
11
0
上面和/或下面的每一个答案对我都不起作用,因此我决定自己写一个小剧本。这不是最好的,但能完成任务。
|
![]() |
12
0
这将起作用:
|
![]() |
13
-1
如果表上有唯一的ID/主键,则: DELETE FROM MyTable AS T1 WHERE MyID < ( SELECT MAX(MyID) FROM MyTable AS T2 WHERE T2.Col1 = T1.Col1 AND T2.Col2 = T1.Col2 ... repeat for all columns to consider duplicates ... ) 如果没有唯一键,请将所有不同的值选择到临时表中,删除所有原始行,然后从临时表中复制回来-但如果有引用此表的外键,则会出现问题。 |
![]() |
Joan · 基于多个panda列的唯一值进行分组 2 年前 |
![]() |
suptagni · 如何删除数据帧中任何行的重复单元格? 3 年前 |
![]() |
anwwwar · 我需要一种方法,只有在两列同时出现时才能找到重复项 3 年前 |
![]() |
Ujjawal Bhandari · 不区分大小写唯一保留原始[重复] 3 年前 |
![]() |
NoBullMan · SQL查询-删除列值重复的行 7 年前 |
![]() |
Nicholas Koskowski · 删除重复的用户元 7 年前 |