数据库如何去除重复记录,Mysql如何去掉数据库中的重复记录?

很简单 通过id删除

DELETE

FROM

table_name AS ta

WHERE

ta.唯一键 (

SELECT

t.maxid

FROM

( SELECT max( tb.唯一键 ) AS maxid FROM table_name AS tb WHERE ta.判断重复的列 = tb.判断重复的列 ) t

);

数据库如何去除重复记录,Mysql如何去掉数据库中的重复记录?

MySQL数据库如何删除重复数据?

现在数据库有几万条数据,如何删除重复数据只留下一条就行,
比如,有十条一样的数据,要删除掉其他九条记录,只留下一条就行 数据库如何去除重复记录,Mysql如何去掉数据库中的重复记录?

楼主的问题是如何删除重复数据仅保留其中一条,接下来就介绍一下如何实现该需求。

数据准备

示例表 Student_Information 如下 :

数据库如何去除重复记录,Mysql如何去掉数据库中的重复记录?


我们插入一部分数据到该表,其中存在多条姓名为 Anaa 的手机号码重复数据,如下:

数据库如何去除重复记录,Mysql如何去掉数据库中的重复记录?


入库后数据如下:

数据库如何去除重复记录,Mysql如何去掉数据库中的重复记录?


设计删除SQL

我们通过Group by对手机号进行分组,然后计算每组最大ID作为保留数据,然后删除其他数据。SQL设计如下:

数据库如何去除重复记录,Mysql如何去掉数据库中的重复记录?

执行该SQL,结果如下:

数据库如何去除重复记录,Mysql如何去掉数据库中的重复记录?

我们可以看到,该SQL删除了重复的数据时,并且保留了id最大的数据(最新数据)。


设计该SQL时需要注意什么?

我们需要注意,使用 MySQL 进行 Delete From 操作时,若子查询的 FROM 字句和更新、删除对象使用同一张表时,会出现"You can't specify target table for update in FROM clause”。错误。

比如,我们设计如下SQL,该SQL从语法来看也是实现删除 Student_Information 表重复数据,我们执行一下看下结果。

数据库如何去除重复记录,Mysql如何去掉数据库中的重复记录?

执行结果如下,我们可以看到抛出了"You can't specify target table for update in FROM clause”错误,那么该如何解决呢?

数据库如何去除重复记录,Mysql如何去掉数据库中的重复记录?

解决这个问题的方法也很简单,就是将 select 出的结果通过中间表再 select 一遍即可,如下:

数据库如何去除重复记录,Mysql如何去掉数据库中的重复记录?


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 xxx@163.com 举报,一经查实,本站将立刻删除。

发表评论

登录后才能评论