MYSQL统计和识别重复值

640?wx_fmt=jpeg


1、查询和计算表person_tbl中(last_name,first_name)组合有重复的记录的数量。

mysql> SELECT COUNT (*) AS repetitions, last_name, first_name

         FROM person_tbl  GROUP BY last_name, first_name

         HAVING repetitions > 1;

2、从结果集中消除重复记录

使用DISTINCT关键字即可从结果集中消除重复记录。

mysql> SELECT DISTINCT last_name, first_name

         FROM person_tbl

       ORDER BY last_name;

使用GROUP BY子句。

mysql> SELECT last_name, first_name

         FROM person_tbl

         GROUP BY (last_name, first_name);

3、删除表中的重复记录

mysql> CREATE TABLE  tmp SELECT last_name, first_name, sex

                                     FROM person_tbl;    

                              GROUP BY (last_name, first_name);

mysql> DROP TABLE person_tbl;

Mysql> ALTER TABLE tmp RENAME TO person_tbl;

还有一个不为人知的技巧,可以直接在一个有重复记录的表上加上主键或唯一索引,可使用ALTER IGNORE语句,命令如下。

mysql> ALTER IGNORE TABLE person_tbl

       ADD PRIMARY KEY (last_name, first_name);

可以使用如上的方法消除重复记录,并且确保以后都有唯一约束。

也可以采用如下的方式,直接删除重复数据,如下语句将删除name相同的数据,其中id是主键。

DELETE t1 FROM table1 AS t1 JOIN table1 AS t2 ON t1.id>t2.id AND t1.name=t2.name;

文章基于MySQL DBA修炼之道整理,版权属于原作者

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/271987.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

main spring启动_SpringBoot学习(一):为什么main方法启动类需要放在项目根目录...

一、概述使用SpringBoot的应用是需要将应用代码编译打包成jar包,然后基于main方法的方式来独立启动这个应用,使得该应用作为一个独立进程运行。这是跟传统的将项目打包成war包,然后部署到tomcat服务器去运行的一个区别。而在应用当中&#xf…

学习笔记~~~~LinkedHashMap

LinkedHashMap实现了Map接口,继承了HashMap 应用场景 HashMap是无序的,当我们希望有顺序地去存储key-value时,就需要使用LinkedHashMap了。 我们是按照7、2、3、4 的顺序插入的,但是输出结果并不是按照顺序的。 同样的数据&…

[转]Mysql Join语法解析与性能分析

转自:http://www.cnblogs.com/BeginMan/p/3754322.html 一.Join语法概述 join 用于多表中字段之间的联系,语法如下: ... FROM table1 INNER|LEFT|RIGHT JOIN table2 ON conditiona table1:左表;table2:右表。 JOIN 按照…

css radial-gradient 径向渐变基本语法与使用

在之前的文章《深入理解Css linear-gradient线性渐变》我们了解了CSS中的线性渐变,本文将介绍CSS中的另一种渐变———径向渐变(Radial Gradient): CSS中的径向渐变(Radial Gradient)允许你创建从一个颜色…

华为鸿蒙系统技术细节盘点

面对安卓的限制,华为似乎十分淡定从容,丝毫都不慌,华为的底气,很大原因来自华为自研的操作系统——鸿蒙系统!鸿蒙系统刚提出来的时候就在各界媒体中炸开了花,花粉们对其关注程度也是只增不减,那…

spring boot2.x设置session有效时间_Spring 源码解析 Scopes 之 Request 、Session 、Application...

(给ImportNew加星标,提高Java技能)转自:开源中国,作者:麦克斯链接:my.oschina.net/wang5v/blog/3017934Request、Session、Application概念在这篇Spring源码解析-Singleton Scope(单例)和Prototype Scope(多例)博客中介…

学习笔记~~~~~TreeMap

TreeMap继承了AbstractMap类,实现了NavigableMap、Cloneable、Serializable 接口 TreeMap也是一个很常用的map实现类,因为他具有一个很大的特点就是会对Key进行排序,使用了TreeMap存储键值对,再使用iterator进行输出时&#xff0c…

程序员别再迷茫,赚钱,方法比你想的更多

每次打开公号,扑面而来一阵阵焦虑:95后毕业3个月就买房,你的同龄人正在抛弃你毕业3年,年薪超100万:赚钱,是一种修行一线城市财务自由门槛2.9亿,看看你还差多少说来说去就是,牛人跑得…

Mac 创建本地Mysql_2018-09-25:mac下创建本地数据库mysql

问题:如何在mac系统下,创建本地数据库mysql?过程:1.安装brew install mysql2.启动mysql过程中遇到的问题:(1)ERROR 2002 (HY000): Cant connect to local MySQL server through socket /tmp/mysql.sock (2)解决过程&am…

.NET Core 学习资料精选:入门

开源跨平台的.NET Core,还没上车的赶紧的,来不及解释了……本系列文章,主要分享一些.NET Core比较优秀的社区资料和微软官方资料。我进行了知识点归类,让大家可以更清晰的学习.NET Core。首先感谢资料原作者的贡献。第一篇&#x…

学习笔记~~~~~Set接口实现

Java中提供了HashSet、TreeSet、LinkedHashSet三种常用的Set实现,以下具体分析它们的用法和性能。 我们使用Set的原因是Set集合不包含重复元素,HashSet、TreeSet和LinkedHashSet三种类型什么时候使用它们,使用哪个这是一个很重要的选择性问题…

15句乔布斯经典语录(中英文)

1.Life is brief, and then you die, you know?人生短暂,过着过着你就没了,明白么?2.Innovation distinguishes between a leader and a follower.领袖和跟风者的区别就在于创新。3.Were here to put a dent in the universe. Oth…

mysql一些常用操作_mysql的一些常用操作(一)

1.启动Mysql服务net start mysql2.进入mysql环境中,由于自己没有设置密码,直接回车进入即可(要将bin加入到环境变量path中)mysql -u root -p3.创建一个数据库create database db_test default character set utf8 collate utf8_general_ci;显示数据库&am…

关于程序员的脑筋急转弯(附答案)

1、程序猿最常去的是哪间酒吧?2、程序猿什么情况下会选择离职?3、0是假,1是真,请问这是真还是假?4、你怎样才能知道一个计算机科学家是内向还是外向的?5、为什么大部分Java程序员都是戴眼镜的?6…

怎么确保一个集合不能被修改

集合(map,set,list)都是引用类型,所以我们如果用final修饰的话,集合里面的内容还是可以修改的。 可以使用 Collections. unmodifiableCollection(Collection c) 方法来创建一个只读集合,这样改变集合的任何操作都会抛…

以下十种性格的人不适合做程序员,你​赞同吗? ​

目录 1. 宁愿参加培训,也不愿意自学 2. 喜欢正常的上下班时间 3. 喜欢正常加薪而不是跳槽 4. 无法和同事和睦共处 5. 容易垂头丧气 6. 思想保守,不考虑他人建议 7. 不注重细节 8. 没有工作荣誉感 9. 不能做到三思而后行 10. 不喜欢极客类型的人 以下十种…

Iterator与ListIterator有什么区别

Iterator与ListIterator区别如下: 1、Iterator是ListIterator的父接口。 2、Iterator是单列集合(Collection)公共取出容器中元素的方式。 对于List,Set都通用。 而ListIterator是List集合的特有取出元素方式。 3、Iterator中具备的功能只有hashNext(),ne…

IT行业17条经典语录

1. 手表定律:一个人有一只表时,可以知道现在是几点钟,当他拥有两只表时,却无法确定。所以,对于任何一件事情,不能同时设置两个不同的目标;对于一个人,也不能同时选择两种不同的价值…

mysql_install_db卸载_MySQL数据库的卸载与安装

MySQL数据库的卸载与安装MySQL的完全卸载因为不知道什么原因,电脑里同时存在两个版本的mysql,所以决定卸载重新安装,但是大家都说MySQL很难清除干净,所以特地查找完全卸载MySQL的方法。首先,快捷键winr输入regedit进入…

前端:QuickJS到底能干什么

QuickJS 是一个轻量且可嵌入的 JavaScript 引擎,它支持 ES2019 规范,包括 ES module、异步生成器以及 proxies。除此之外,还支持可选的数学扩展,例如大整数(BigInt)、大浮点数(BigFloat)和运算符重载。主要特点:轻量而…