如何删除MySQL中的重复行?
我试图从表中删除重复的行 这是我的问题如何删除MySQL中的重复行?,mysql,Mysql,我试图从表中删除重复的行 这是我的问题 delete t1 from TT t1 , TT t2 where t1.id < t2.id and t1.url = t2.url 删除t1 从TT t1 ,TT t2 其中t1.id
delete t1
from TT t1
, TT t2
where t1.id < t2.id
and t1.url = t2.url
删除t1
从TT t1
,TT t2
其中t1.id
这里id是主键,url在表TT中具有唯一键。您一定想知道为什么会有具有唯一索引的重复行
实际上它确实发生了,我不知道为什么,但现在我想先删除重复的行。我可以在phpmyadmin中运行查询,但根本不会删除重复的行(TT表中有重复的行)
原因可能是什么?谢谢 您可以使用ROW_NUMBER()删除重复项
;WITH cte AS (
SELECT *
, ROW_NUMBER OVER(PARTITION BY url ORDER BY url) AS rn
FROM TT
)
DELETE FROM cte
WHERE rn > 1
您可以使用ROW_NUMBER()删除重复项
;WITH cte AS (
SELECT *
, ROW_NUMBER OVER(PARTITION BY url ORDER BY url) AS rn
FROM TT
)
DELETE FROM cte
WHERE rn > 1
实际上,甚至在使用我已经发布的查询之前,我也尝试在查询中使用join。下面是一个查询,[code]从TT t1内部连接TT t2删除t1,其中t1.id