+
95
-

回答

假设有个用户表,表结构及内容如下


我们要找出名字重复的数据,那么sql这么写

SELECT pName FROM T_Person GROUP BY pName HAVING COUNT(pName)>1;

结果如下:


那么怎么删除这些重复数据,只保留一个呢,mysql中要这样写:

DELETE FROM T_Person
WHERE pName IN (SELECT pName FROM (SELECT pName FROM T_Person GROUP BY pName HAVING COUNT(pName)>1 ) AS temp);

如果同一个姓名的数据不止2条,可能三条 四条或更多的话,怎么办,只要重复执行上面的sql,直到返回的结果显示受影响的行为0就表示完成了。



网友回复

我知道答案,我要回答