在mysql中,distinct关键字用于过滤重复数据,它可以对数据表中一个或多个字段重复的数据进行过滤,只返回其中的一条数据给用户;distinct关键字需要和SELECT语句一起使用,语法“SELECT DISTINCT column1, column2, … FROM table_name; ”。
程序员必备接口测试调试工具:立即使用
Apipost = Postman + Swagger + Mock + Jmeter
Api设计、调试、文档、自动化测试工具
后端、前端、测试,同时在线协作,内容实时同步
本教程操作环境:windows7系统、mysql8版本、Dell G3电脑。
在 MySQL 中使用 SELECT 语句执行简单的数据查询时,返回的是所有匹配的记录。如果表中的某些字段没有唯一性约束,那么这些字段就可能存在重复值。为了实现查询不重复的数据,MySQL 提供了 DISTINCT 关键字。
DISTINCT 关键字的主要作用就是对数据表中一个或多个字段重复的数据进行过滤,只返回其中的一条数据给用户。
DISTINCT 关键字的语法格式为:
SELECT DISTINCT column1, column2, ... FROM table_name;
其中,“column
”为需要消除重复记录的一个或多个字段名称,多个字段时用逗号隔开。
使用 DISTINCT 关键字时需要注意以下几点:
-
DISTINCT 关键字只能在 SELECT 语句中使用。
-
在对一个或多个字段去重时,DISTINCT 关键字必须在所有字段的最前面。
-
如果 DISTINCT 关键字后有多个字段,则会对多个字段进行组合去重,也就是说,只有多个字段组合起来完全是一样的情况下才会被去重。
演示数据库
以下是Northwind示例数据库中“Customers”表的选择:
CustomerID | CustomerName | ContactName | Address | City | PostalCode | Country |
---|---|---|---|---|---|---|
1 | Alfreds Futterkiste | Maria Anders | Obere Str. 57 | Berlin | 12209 | Germany |
2 | Ana Trujillo Emparedados y helados | Ana Trujillo | Avda. de la Constituciуn 2222 | Mйxico D.F. | 05021 | Mexico |
3 | Antonio Moreno Taquerнa | Antonio Moreno | Mataderos 2312 | Mйxico D.F. | 05023 | Mexico |
4 | Around the Horn | Thomas Hardy | 120 Hanover Sq. | London | WA1 1DP | UK |
5 | Berglunds snabbkцp | Christina Berglund | Berguvsvдgen 8 | Luleе | S-958 22 | Sweden |
没有使用DISTINCT的SELECT实例
以下SQL语句从“Customers”表中的“Country”列中选择ALL(包括重复项)值:
SELECT Country FROM Customers;
SELECT DISTINCT实例
1、仅从“Customers”表中的“Country”列中选择DISTINCT值:
SELECT DISTINCT Country FROM Customers;
2、列出了不同 “Country” 的数量:
SELECT COUNT(DISTINCT Country) FROM Customers;
注意:上面的示例在Firefox和Microsoft Edge中不起作用!因为Microsoft Access数据库不支持COUNT(DISTINCT column_name)。Firefox和Microsoft Edge在我们的示例中使用Microsoft Access。
【