如何删除数据库中的重复记录(一)
今天去西安一家公司去面试,其中有一道面试题是这样的:“如何删除在数据表中完全相同的记录,如果两条相同的记录主键不同,那么又应该如何删除” ,当时因为是很简单的题目就直接用sql语句完成,面试官看了之后说这个有问题。回来研究一下果然错了。现在把
今天去西安一家公司去面试,其中有一道面试题是这样的:“如何删除在数据表中完全相同的记录,如果两条相同的记录主键不同,那么又应该如何删除” ,当时因为是很简单的题目就直接用sql语句完成,面试官看了之后说这个有问题。回来研究一下果然错了。现在把研究的步骤分享下来。
研究条件:
window7 + no-install mysql
1. 如何删除除了主键不同其他属性均相同的记录
主要思想:首先从数据表中找出没有重复的数据记录,然后把这些记录保存到临时表中,然后删除原表记录把临时表中的记录迁移过去。
具体步骤:
一、 查看下表在student中有两条相同记录,有distinct查找不同的记录(如右图)。
二、 创建临时表,把上面右图的数据迁移到临时表student_temp中.
sql语句: create temporary table if not exists student_temp as (select distinct(name), sex from student);
三、 删除原表内容或者重新创建张新表,本例采用在原表基础上修改,然后把student_temp内容迁移到student,最后结果如下图所示:
用到sql: insert into student(id, name,sex ) select null,name,sex from student_temp;
最后就可以看到student表中只有两条不同数据了。
推荐阅读
-
CZML中的动态面——如何将一个面区域由小变大(县到省的过程)(4)坐标数据抽稀
-
百度地图中,如何根据一个坐标点搜索数据库中附近多少距内的N个坐标点
-
如何删除数据库中的重复记录(一)
-
如何删除Windows10操作系统资源管理器中的下载、图片、音乐、文档、视频、桌面、3D对象这7个文件夹
-
PPT2007中如何将单调的文字处理成对角线颜色不一的文本效果
-
PHP 如何将数据库中存储的十六进制数转换为汉字
-
javascript中的变量如何传到php中,一个高难问题 100大分!
-
php中如何从一个文件获取另一个php文件的代码?(而不是执行结果)
-
如何样删除数组中的中间元素与末尾元素
-
数据库同步过程中如何解决大字段的同步