2026-01-24 20:15:37 5044
SQL 更新数据(UPDATE)SQL TOP/LIMIT
SQL DISTINCT 子句
在本教程中,您将学习如何从结果集中删除重复的值。
检索不同的值从数据库表中获取数据时,结果集可能包含重复的行或值。 如果要删除这些重复的值,可以在SELECT关键字之后直接指定关键字DISTINCT,如下所示:
语法DISTINCT子句用于从结果集中删除重复的行:
SELECT DISTINCT column_list FROM table_name;在这里,column_list是用逗号分隔的要获取其值的数据库表的列名或字段名的列表(例如name,age,country等)。
注意: DISTINCT子句的行为类似于UNIQUE约束,除了它对待null的方式不同。 两个NULL值被认为是唯一的,而同时又不认为它们是彼此不同的。
让我们看一些示例,演示其实际工作方式。
假设我们在数据库中有一个customers表,其中包含以下记录:
+---------+--------------------+-----------+-------------+
| cust_id | cust_name | city | postal_code |
+---------+--------------------+-----------+-------------+
| 1 | Maria Anders | Berlin | 12209 |
| 2 | Fran Wilson | Madrid | 28023 |
| 3 | Dominique Perrier | Paris | 75016 |
| 4 | Martin Blank | Turin | 10100 |
| 5 | Thomas Hardy | Portland | 97219 |
| 6 | Christina Aguilera | Madrid | 28001 |
+---------+--------------------+-----------+-------------+现在执行以下语句,该语句返回此表的city列中的所有行。
示例SELECT city FROM customers;执行后,您将获得如下输出:
+-----------+
| city |
+-----------+
| Berlin |
| Madrid |
| Paris |
| Turin |
| Portland |
| Madrid |
+-----------+如果仔细查看输出,您会发现城市“Madrid”在我们的结果集中出现了两次,这不好吧。好吧,让我们解决这个问题。
删除重复数据以下语句用于DISTINCT在customers表中生成所有城市的列表。
示例SELECT DISTINCT city FROM customers;执行上述命令后,您将获得如下输出:
+-----------+
| city |
+-----------+
| Berlin |
| Madrid |
| Paris |
| Turin |
| Portland |
+-----------+正如您看到的,这次的结果集中没有重复的值。
注意:如果将SELECT DISTINCT语句用于具有多个NULL值的列,则SQL保留一个NULL值,并从结果集中删除其他值,因为DISTINCT将所有NULL值视为相同的值。
SQL 更新数据(UPDATE)SQL TOP/LIMIT
跨服竞技 2025-04-16 20:08:45
坐骑图鉴 2026-01-02 11:42:32
坐骑图鉴 2025-04-17 21:15:16
皮肤商城 2025-10-22 04:25:22
跨服竞技 2025-12-23 12:21:10
跨服竞技 2026-01-12 04:40:38
跨服竞技 2025-10-02 14:00:43
跨服竞技 2025-04-24 22:31:53
皮肤商城 2025-06-23 23:12:48
皮肤商城 2025-12-18 23:48:05