数据库示例:
表名:test.表名 根据学号字段删除重复的数据:
1.给每一行设置行序号
定义一个变量n,插入序号字段,每行n+1
ALTER TABLE test.表名 ADD 序号 int NULL;
set @n=0;
update test.表名 set 序号=@n:=@n+1;
2.汇总 学号 的第一个序号
SELECT 序号 FROM test.表名 GROUP BY 学号
3.将查询结果命名b,没有这句会出错
SELECT * FROM(SELECT 序号 FROM test.表名 GROUP BY 学号)AS b
4.删除查询不在查询结果的序号
DELETE FROM test.表名 WHERE 序号 NOT IN(SELECT * FROM(SELECT 序号 FROM test.表名 GROUP BY 学号)AS b);
得到完整的代码:
ALTER TABLE test.表名 ADD 序号 int NULL;
set @n=0;
update test.表名 set 序号=@n:=@n+1;
DELETE FROM test.表名 WHERE 序号 NOT IN(SELECT * FROM(SELECT 序号 FROM test.表名 GROUP BY 学号)AS b);
运行结果: