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 过滤掉了重复的记录。
相关文章:
MySQL——单表查询(二)按条件查询(6)DISTINCT 关键字作用于多个字段
DISTINCT 关键字可以作用于多个字段,其语法格式如下所示: SELECT DISTINCT 字段名 1,字段名 2,… FROM 表名; 在上面的语法格式中,只有 DISTINCT 关键字后指定的多个字段值都相同,才会裱认作是重复记录。 例如࿰…...

python从入门到精通:数据容器
数据容器介绍 一种可以容纳多份数据的数据类型,容纳的每一份数据称之为一个元素,可以是任意类型的数据,如字符串、数字、布尔等。 数据容器根据特点的不同,如: 是否支持重复元素 是否可以修改 是否有序࿰…...

Java 中都有哪些引用类型?
Java 中都有哪些引用类型? 强引用 在 Java 中最常见的就是强引用,把一个对象赋给一个引用变量,这个引用变量就是一个强引用。当一个对象被强引用变量引用时,它处于可达状态,它是不可能被垃圾回收机制回收的。因此强引…...

使用 Dify 和 AI 大模型理解视频内容:Qwen 2 VL 72B
接下来的几篇相关的文章,聊聊使用 Dify 和 AI 大模型理解视频内容。 本篇作为第一篇内容,以昨天出圈的“黑神话悟空制作人采访视频”为例,先来聊聊经常被国外厂商拿来对比的国产模型:千问系列,以及它的内测版。 写在…...
mybatisplus 通过xml 定义接口
在 MyBatis-Plus 中,虽然它极大地简化了 CRUD 操作,提供了许多注解方式(如 Select、Insert、Update、Delete)来直接在 Mapper 接口上定义 SQL 语句,但 MyBatis-Plus 仍然支持传统的 MyBatis 风格的 XML 配置方式来定义…...

上周稼先社区的活动
参天是什么? 最近”参天”很火,不仅MySQL社区,听说Monty最近也跟他们搞了很多活动。其实说起华为的数据库,只有从事数据库行业的人才知道高斯,其他很多人不知道。但是即使从事数据库相关的人,对另外一个产…...
day_45
115. 不同的子序列 class Solution:def numDistinct(self, s: str, t: str) -> int:dp [[0] * (len(t) 1) for _ in range(len(s) 1)]for i in range(len(s)):dp[i][0] 1for j in range(1, len(t)):dp[0][j] 0for i in range(1, len(s) 1):for j in range(1, len(t) …...

SQL 时间盲注 (injection 第十六关)
简介 SQL注入(SQL Injection)是一种常见的网络攻击方式,通过向SQL查询中插入恶意的SQL代码,攻击者可以操控数据库,SQL注入是一种代码注入攻击,其中攻击者将恶意的SQL代码插入到应用程序的输入字段中&#x…...

nginx核心配置示例
1.核心配置示例 基于不同的IP、不同的端口以及不用得域名实现不同的虚拟主机,依赖于核心模块 ngx_http_core_module实现。 1.新建一个 PC web 站点 # 访问测试 [rootnode100 ~]# curl www.root.org # 注意在访问主机中设解析 2.root 与 alias root :指…...
【面向对象】04面向对象三大特征之——继承
文章目录 一、super1.构造方法2.属性3.方法 二、规则三、继承权限 继承 继承是Java中实现代码重用的重要手段之一。使用继承,可以减少代码量,方便修改代码。Java中只支持单根继承,即一个类只能有一个直接父类。 继承使用关键字extends&#…...

计算机毕业设计Python+Flask弹幕情感分析 B站视频数据可视化 B站爬虫 机器学习 深度学习 人工智能 NLP文本分类 数据可视化 大数据毕业设计
### 开题报告:基于Python和Flask的弹幕情感分析系统 #### 一、研究背景 弹幕(Danmaku)是一种实时在视频播放过程中显示的评论或弹幕,起初源于日本,但在中国的二次元文化和直播平台中得到了广泛应用。弹幕作为一种独特…...

用基础项目来理解spring的作用
简介 spring官方的解释过于专业化,初学者可能比较难懂,接下来我将通过一个最基础的Java项目来尽可能的展示spring中的作用及spring的底层是如何来实现的。 项目结构 该项目是一个简单的JavaSE项目,没有maven或者tomcat等其他。只在控制台进…...
Json-复杂泛型解析工具类
为了处理复杂的 JSON 泛型解析任务,你可以创建一个通用的工具类来封装这些操作。这里分别 针对 Jackson 和 Fastjson 提供两个工具类的例子。 1. Jackson 的 JSON 泛型解析工具类 import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackso…...
CLIP-VIT-L + Qwen 多模态学习笔记 -3
多模态学习笔记 - 3 参考repo:WatchTower-Liu/VLM-learning; url: VLLM-BASE 吐槽 今天接着昨天的源码继续看,黑神话:悟空正好今天发售,希望广大coder能玩的开心~ 学习心得 前情提要 详情请看多模态学习笔记 - 2 上次我们讲到利用view(…...

如何将网站地图Sitemap提交至百度、谷歌及Bing搜索引擎
原文:如何将网站地图Sitemap提交至百度、谷歌及Bing搜索引擎 - 孔乙己大叔 (rebootvip.com) 在当今高度竞争的互联网环境中,搜索引擎优化(SEO)对于网站的可见性和成功至关重要。网站地图(Sitemap)ÿ…...

DC-DC FB分压电阻计算 (MP1584 SY8205为例)
【本文发布于https://blog.csdn.net/Stack_/article/details/141371702,未经许可不得转载,转载须注明出处】 获取文件 【MP1584 MP2451 SY8205 SY8201 FB分压电阻计算】 一般DC-DC芯片对输出电压的调节,是以FB引脚达到0.6V或者0.8V为止的&…...

ESLint详解及在WebStorm中的应用
ESLint是一个开源的JavaScript代码检查工具,用于识别和报告JavaScript代码中的模式问题。它可以帮助开发者遵循一定的编码规范和最佳实践,提高代码质量和可维护性。 ESLint的工作原理是通过插件和配置文件来定义一系列规则,对JavaScript代码…...
数据库系统 第20节 云数据库
云数据库是一种基于云计算技术的数据库服务,它允许用户通过互联网访问和操作数据库,而无需在本地服务器上安装和维护数据库软件。以下是云数据库的一些主要特点和优势: 弹性扩展:云数据库能够根据应用的需求动态调整计算和存储资源…...

用excel内容批量建立文件夹
建文件夹是电脑操作过程中比较常见的,但是用EXCEL内容批量建文件夹,这似乎不相关的两个操作,那么怎么实现这样的一个功能,我们需要用到专门的软件进行关联,推荐:可易文件夹批量生成器,这个软件有…...

SIRA-PCR: Sim-to-Real Adaptation for 3D Point Cloud Registration 论文解读
目录 一、导言 二、 相关工作 1、三维点云配准工作 2、无监督域适应 三、SIRA-PCR 1、FlyingShape数据集 2、Sim-to-real自适应方法 3、配准 4、损失函数 一、导言 该论文来自于ICCV2023,论文提出了一种新的方法SIRA-PCR,通过利用合成数据Flying…...
在软件开发中正确使用MySQL日期时间类型的深度解析
在日常软件开发场景中,时间信息的存储是底层且核心的需求。从金融交易的精确记账时间、用户操作的行为日志,到供应链系统的物流节点时间戳,时间数据的准确性直接决定业务逻辑的可靠性。MySQL作为主流关系型数据库,其日期时间类型的…...
React 第五十五节 Router 中 useAsyncError的使用详解
前言 useAsyncError 是 React Router v6.4 引入的一个钩子,用于处理异步操作(如数据加载)中的错误。下面我将详细解释其用途并提供代码示例。 一、useAsyncError 用途 处理异步错误:捕获在 loader 或 action 中发生的异步错误替…...

Appium+python自动化(十六)- ADB命令
简介 Android 调试桥(adb)是多种用途的工具,该工具可以帮助你你管理设备或模拟器 的状态。 adb ( Android Debug Bridge)是一个通用命令行工具,其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利,如安装和调试…...

从WWDC看苹果产品发展的规律
WWDC 是苹果公司一年一度面向全球开发者的盛会,其主题演讲展现了苹果在产品设计、技术路线、用户体验和生态系统构建上的核心理念与演进脉络。我们借助 ChatGPT Deep Research 工具,对过去十年 WWDC 主题演讲内容进行了系统化分析,形成了这份…...

Linux相关概念和易错知识点(42)(TCP的连接管理、可靠性、面临复杂网络的处理)
目录 1.TCP的连接管理机制(1)三次握手①握手过程②对握手过程的理解 (2)四次挥手(3)握手和挥手的触发(4)状态切换①挥手过程中状态的切换②握手过程中状态的切换 2.TCP的可靠性&…...

dedecms 织梦自定义表单留言增加ajax验证码功能
增加ajax功能模块,用户不点击提交按钮,只要输入框失去焦点,就会提前提示验证码是否正确。 一,模板上增加验证码 <input name"vdcode"id"vdcode" placeholder"请输入验证码" type"text&quo…...
Nginx server_name 配置说明
Nginx 是一个高性能的反向代理和负载均衡服务器,其核心配置之一是 server 块中的 server_name 指令。server_name 决定了 Nginx 如何根据客户端请求的 Host 头匹配对应的虚拟主机(Virtual Host)。 1. 简介 Nginx 使用 server_name 指令来确定…...
反射获取方法和属性
Java反射获取方法 在Java中,反射(Reflection)是一种强大的机制,允许程序在运行时访问和操作类的内部属性和方法。通过反射,可以动态地创建对象、调用方法、改变属性值,这在很多Java框架中如Spring和Hiberna…...

SpringTask-03.入门案例
一.入门案例 启动类: package com.sky;import lombok.extern.slf4j.Slf4j; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cache.annotation.EnableCach…...
代理篇12|深入理解 Vite中的Proxy接口代理配置
在前端开发中,常常会遇到 跨域请求接口 的情况。为了解决这个问题,Vite 和 Webpack 都提供了 proxy 代理功能,用于将本地开发请求转发到后端服务器。 什么是代理(proxy)? 代理是在开发过程中,前端项目通过开发服务器,将指定的请求“转发”到真实的后端服务器,从而绕…...