当前位置: 首页 > news >正文

MySQL——单表查询(二)按条件查询(6)DISTINCT 关键字作用于多个字段

        DISTINCT 关键字可以作用于多个字段,其语法格式如下所示:

SELECT DISTINCT 字段名 1,字段名 2,…
FROM 表名;

        在上面的语法格式中,只有 DISTINCT 关键字后指定的多个字段值都相同,才会裱认作是重复记录。
        例如,查询 student 表中的 gender和name 字段,使用 DISTINCT 关键字作用孑这两个字段,SQL语句如下所示。

SELECT DISTINCT gender,name FROM student;

        执行结果如下所示:

mysql> SELECT DISTINCT gender,name FROM student;
+--------+------------+
| gender | name       |
+--------+------------+
| 男     | songjiang  |
| 男     | wuyong     |
| 男     | ginming    |
| 女     | husanniang |
| 女     | sunerniang |
| 男     | wusong     |
| 男     | linchong   |
| NULL   | yanging    |
+--------+------------+
8 rows in set (0.00 sec)

        从查询结果可以看到,返回的记录中gender 字段仍然出现了重复值,这是因为DISTINCT 关键字作用于 gender 和 name 两个字段,只有这两个字段的值都相同才被认为是重复记录。而从上面的结果来看,gender 字段值重复的记录中,它们的 name 字段值并不相同。为了能够演示过滤多个字段重复的效果,向 student 表中添加一条新记录,SQL语句如下所示:

mysql> INSERT INTO student(name,grade,gender)-> VALUES('songjiang',20,'男');
Query OK, 1 row affected (0.00 sec)

        执行完 INSERT 语句后,使用 SELECT 语句查询 student 表中的所有记录,执行结果如下所示:

mysql> SELECT * FROM student;
+----+------------+-------+--------+
| id | name       | grade | gender |
+----+------------+-------+--------+
|  1 | songjiang  |    40 | 男     |
|  2 | wuyong     |   100 | 男     |
|  3 | ginming    |    90 | 男     |
|  4 | husanniang |    88 | 女     |
|  5 | sunerniang |    66 | 女     |
|  6 | wusong     |    86 | 男     |
|  7 | linchong   |    92 | 男     |
|  8 | yanging    |    90 | NULL   |
|  9 | songjiang  |    20 | 男     |
+----+------------+-------+--------+
9 rows in set (0.00 sec)

        从查询结果可以看到,student表中一共有9条记录,并且第1条记录、第9条记录的 name 字段和 gender 字段值相等,分别为“songjiang”和“男”。接下来再次查询 gender 和name 字段,并使用 DISTINCT 作用于这两个字段,执行结果如下所示:

mysql> SELECT DISTINCT gender,name FROM student;
+--------+------------+
| gender | name       |
+--------+------------+
| 男     | songjiang  |
| 男     | wuyong     |
| 男     | ginming    |
| 女     | husanniang |
| 女     | sunerniang |
| 男     | wusong     |
| 男     | linchong   |
| NULL   | yanging    |
+--------+------------+
8 rows in set (0.00 sec)

        从查询结果可以看到,只查出了8条记录,并且 gender 字段值为“男”,“name”字段值为“songjiang”的记录只有一条,这说明 DISTINCT 过滤掉了重复的记录。

http://www.lryc.cn/news/428748.html

相关文章:

  • python从入门到精通:数据容器
  • Java 中都有哪些引用类型?
  • 使用 Dify 和 AI 大模型理解视频内容:Qwen 2 VL 72B
  • mybatisplus 通过xml 定义接口
  • 上周稼先社区的活动
  • day_45
  • SQL 时间盲注 (injection 第十六关)
  • nginx核心配置示例
  • 【面向对象】04面向对象三大特征之——继承
  • 计算机毕业设计Python+Flask弹幕情感分析 B站视频数据可视化 B站爬虫 机器学习 深度学习 人工智能 NLP文本分类 数据可视化 大数据毕业设计
  • 用基础项目来理解spring的作用
  • Json-复杂泛型解析工具类
  • CLIP-VIT-L + Qwen 多模态学习笔记 -3
  • 如何将网站地图Sitemap提交至百度、谷歌及Bing搜索引擎
  • DC-DC FB分压电阻计算 (MP1584 SY8205为例)
  • ESLint详解及在WebStorm中的应用
  • 数据库系统 第20节 云数据库
  • 用excel内容批量建立文件夹
  • SIRA-PCR: Sim-to-Real Adaptation for 3D Point Cloud Registration 论文解读
  • IDEA安装和使用(配图)
  • leetcode67. 二进制求和,简单模拟
  • Python:读写操作
  • 软体水枪在灭火工作中发挥什么作用_鼎跃安全
  • ES与MySQL数据同步实现方式
  • Prometheus 服务发现
  • 2.复杂度分析
  • ensp小实验(ospf+dhcp+防火墙)
  • Web服务器——————nginx篇
  • 【实战教程】一键升级CentOS 7.9.2009至OpenSSL 1.0.2u:加固你的Linux服务器安全防线!
  • React 使用ref属性调用子组件方法(也可以适用于父子传参)