千家信息网

mysql如何去掉重复的数据

发表于:2024-11-26 作者:千家信息网编辑
千家信息网最后更新 2024年11月26日,这篇文章给大家分享的是有关mysql如何去掉重复的数据的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。在mysql中,可以利用"SELECT"语句和"DISTINCT"关键字
千家信息网最后更新 2024年11月26日mysql如何去掉重复的数据

这篇文章给大家分享的是有关mysql如何去掉重复的数据的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

在mysql中,可以利用"SELECT"语句和"DISTINCT"关键字来进行去重查询,过滤掉重复的数据,语法"SELECT DISTINCT 字段名 FROM 数据表名;"。

本教程操作环境:windows7系统、mysql8版本、Dell G3电脑。

在 MySQL 中使用 SELECT 语句执行简单的数据查询时,返回的是所有匹配的记录。如果表中的某些字段没有唯一性约束,那么这些字段就可能存在重复值。为了实现查询不重复的数据,MySQL 提供了 DISTINCT 关键字。

DISTINCT 关键字的主要作用就是对数据表中一个或多个字段重复的数据进行过滤,只返回其中的一条数据给用户。

DISTINCT 关键字的语法格式为:

SELECT DISTINCT <字段名> FROM <表名>;

其中,"字段名"为需要消除重复记录的字段名称,多个字段时用逗号隔开。

使用 DISTINCT 关键字时需要注意以下几点:

  • DISTINCT 关键字只能在 SELECT 语句中使用。

  • 在对一个或多个字段去重时,DISTINCT 关键字必须在所有字段的最前面。

  • 如果 DISTINCT 关键字后有多个字段,则会对多个字段进行组合去重,也就是说,只有多个字段组合起来完全是一样的情况下才会被去重。

示例

下面通过一个具体的实例来说明如何实现查询不重复数据。

test 数据库中 student 表的表结构和数据如下所示:

mysql> SELECT * FROM test.student;+----+----------+------+-------+| id | name     | age  | stuno |+----+----------+------+-------+|  1 | zhangsan |   18 |    23 ||  2 | lisi     |   19 |    24 ||  3 | wangwu   |   18 |    25 ||  4 | zhaoliu  |   18 |    26 ||  5 | zhangsan |   18 |    27 ||  6 | wangwu   |   20 |    28 |+----+----------+------+-------+6 rows in set (0.00 sec)

结果显示,student 表中存在 6 条记录。

下面对 student 表的 age 字段进行去重,SQL 语句和运行结果如下:

mysql> SELECT DISTINCT age FROM student;+------+| age  |+------+|   18 ||   19 ||   20 |+------+3 rows in set (0.00 sec)

对 student 表的 name 和 age 字段进行去重,SQL 语句和运行结果如下:

mysql> SELECT DISTINCT name,age FROM student;+----------+------+| name     | age  |+----------+------+| zhangsan |   18 || lisi     |   19 || wangwu   |   18 || zhaoliu  |   18 || wangwu   |   20 |+----------+------+5 rows in set (0.00 sec)

对 student 表中的所有字段进行去重,SQL 语句和运行结果如下:

mysql> SELECT DISTINCT * FROM student;+----+----------+------+-------+| id | name     | age  | stuno |+----+----------+------+-------+|  1 | zhangsan |   18 |    23 ||  2 | lisi     |   19 |    24 ||  3 | wangwu   |   18 |    25 ||  4 | zhaoliu  |   18 |    26 ||  5 | zhangsan |   18 |    27 ||  6 | wangwu   |   20 |    28 |+----+----------+------+-------+6 rows in set (0.00 sec)

因为 DISTINCT 只能返回它的目标字段,而无法返回其它字段,所以在实际情况中,我们经常使用 DISTINCT 关键字来返回不重复字段的条数。

查询 student 表中对 name 和 age 字段去重之后记录的条数,SQL 语句和运行结果如下:

mysql> SELECT COUNT(DISTINCT name,age) FROM student;+--------------------------+| COUNT(DISTINCT name,age) |+--------------------------+|                        5 |+--------------------------+1 row in set (0.01 sec)

结果显示,student 表中对 name 和 age 字段去重之后有 5 条记录。

感谢各位的阅读!关于"mysql如何去掉重复的数据"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

字段 数据 关键 关键字 语句 多个 结果 查询 运行 内容 情况 数据表 更多 篇文章 语法 组合 不错 实用 也就是 也就是说 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 聊城软件开发工作多少钱 西安邮储银行软件开发怎么样 怎么跳板管理服务器 知名专业软件开发成本 怎样知道用的是服务器还是电脑 网吧客户机连接后台服务器 保密和网络安全开展情况 湖南数据网络技术设计 互联网科技股票投资 中国版我的世界小游戏服务器编号 富国互联网科技基金上今日头条 河北运营网络技术服务电话 数据库中联合主键作用 深圳小贰网络技术有限公司 数据库表数 双至强多网口网络安全硬件设备 vm服务器管理界面黑 中兴校招c 类软件开发 绝地求生如何切服务器 系统集成网络安全主要做什么 大兴全球软件开发大会 学生选课系统数据库触发器 上港集团海勃软件开发 银河服务器管理系统 温州嵌入式软件开发费用 服务器开机风扇不转动 软件开发全过程文档 深圳未来高科技互联网 php找不到数据库 服务器阵列卡怎么进入系统
0