关于MySQL 处理重复数据
2024-09-03 12:08:24
统计重复数据
以下我们将统计表中 first_name 和 last_name的重复记录数:
mysql> SELECT COUNT(*) as repetitions, last_name, first_name
-> FROM person_tbl
-> GROUP BY last_name, first_name
-> HAVING repetitions > 1;
以上查询语句将返回 person_tbl 表中重复的记录数。 一般情况下,查询重复的值,请执行以下操作:
- 确定哪一列包含的值可能会重复。
- 在列选择列表使用COUNT(*)列出的那些列。
- 在GROUP BY子句中列出的列。
- HAVING子句设置重复数大于1。
过滤重复数据
如果你需要读取不重复的数据可以在 SELECT 语句中使用 DISTINCT 关键字来过滤重复数据。
mysql> SELECT DISTINCT last_name, first_name
-> FROM person_tbl;
你也可以使用 GROUP BY 来读取数据表中不重复的数据:
mysql> SELECT last_name, first_name
-> FROM person_tbl
-> GROUP BY (last_name, first_name);
删除重复数据
如果你想删除数据表中的重复数据,你可以使用以下的SQL语句:
mysql> CREATE TABLE tmp SELECT last_name, first_name, sex FROM person_tbl GROUP BY (last_name, first_name, sex);
mysql> DROP TABLE person_tbl;
mysql> ALTER TABLE tmp RENAME TO person_tbl;
当然你也可以在数据表中添加 INDEX(索引) 和 PRIMAY KEY(主键)这种简单的方法来删除表中的重复记录。方法如下:
mysql> ALTER IGNORE TABLE person_tbl
-> ADD PRIMARY KEY (last_name, first_name);
最新文章
- 用itextsharp打印pdf示例
- JVM性能调优监控工具jps、jstack、jmap、jhat、jstat、hprof使用详解
- 【python】3.x,string与bytes的区别(文本,二进制数据)
- c++ typeid获取类型名-rtti
- C#中的特性基本理解
- 网络爬虫urllib2 tornado
- Bit-Coin收入的一分钱
- 使用AJAX做关键字查询:输入框变化自动搜索、无刷新页面;
- UIDynamic(一)
- MySQL数据库的优化-运维架构师必会高薪技能,笔者近六年来一线城市工作实战经验
- 在XP系统中自带的 msvcrt.dll 和 Vista 中的 msvcrt.dll 版本不同,导致抛出的异常不同
- 实现多文件上传在iOS开发中
- 全局通知Notification
- TCP的流量控制与拥塞控制小结
- 12个 Linux 中 grep 命令的超级用法实例
- 洛谷P2858奶牛零食 题解
- C#编译错误 CS0009:未能打开元数据文件
- Python标准输出重定向
- mysql-The-server-quit-without-updating-PID-file
- MySQL查询优化之性能提升一个数量级