问答一下,轻松解决,电脑应用解决专家!
主板显卡CPU内存显示器
硬盘维修显卡维修显示器维修
注册表系统命令DOS命令Win8
存储光存储鼠标键盘
内存维修打印机维修
WinXPWin7Win10/Win11
硬件综合机箱电源散热器手机数码
主板维修CPU维修键盘鼠标维修
Word教程Excel教程PowerPointWPS
网络工具系统工具图像工具
数据库javascriptLinux系统
PHP教程CSS教程XML教程

MySQL 中 distinct 的用法

更新时间:2021-04-15 13:40 作者:岁月长衣裳薄点击:
DISTINCT简介
DISTINCT 的作用是消除结果集中的重复行,语法如下:
 
SELECT DISTINCT
    columns
FROM
    table_name
WHERE
    where_conditions; 
 
需要注意的是,如果字段中有NULL值并且要对该列使用DISTINCT 子句,则MySQL仅保留一个NULL值,因为DISTINCT 子句将所有NULL值视为相同的值。
 
DISTINCT 多列
当DISTINCT作用在多个字段的时候,它只会将所有字段值都相同的记录“去重”掉。
 
DISTINCT语句与GROUP BY 语句
如果在不使用聚合函数的情况下在SELECT语句中使用GROUP BY子句,则GROUP BY子句的行为与DISTINCT 子句类似。
 
以下语句使用GROUP BY子句从customers表中选择客户的唯一状态。
 
customers表的字段:
 
+------------------------+
| customers              |
+------------------------+
| customerNumber         |
| customerName           |
| contactLastName        |
| contactFirstName       |
| phone                  |
| addressLine1           |
| addressLine2           |
| city                   |
| state                  |
| postalCode             |
| country                |
| salesRepEmployeeNumber |
| creditLimit            |
+------------------------+
 
> SELECT state
FROM
    customers
GROUP BY state; 
 
+---------------+
| state         |
+---------------+
| NULL          |
| BC            |
| CA            |
| Co. Cork      |
| CT            |
| Isle of Wight |
...
 
使用以下DISTINCT子句将获得同样的结果:
 
> SELECT DISTINCT
    state 
FROM
    customers; 
 
+---------------+
| state         |
+---------------+
| NULL          |
| NV            |
| Victoria      |
| CA            |
| NY            |
| PA            |
| CT            |
| MA            |
...
 
如果将ORDER BY子句添加到使用DISTINCT子句的语句中 ,则结果集将进行排序,并且与使用GROUP BY子句的语句返回的结果集相同。
 
> SELECT DISTINCT
    state 
FROM
    customers 
ORDER BY state; 
 
+---------------+
| state         |
+---------------+
| NULL          |
| BC            |
| CA            |
| Co. Cork      |
| CT            |
| Isle of Wight |
| MA            |
...
 
DISTINCT 和 LIMIT子句
如果将DISTINCT 子句与LIMIT子句一起使用,MySQL会在找到LIMIT子句中指定的唯一行数时立即停止搜索。
 
以下是在 customers表中查询选择前五个非null唯一州。
 
> SELECT DISTINCT
    state
FROM
    customers 
WHERE
    state IS NOT NULL LIMIT 5; 
 
+----------+
| state    |
+----------+
| NV       |
| Victoria |
| CA       |
| NY       |
| PA       |
+----------+
更多相关文献参考《oracle distinct用法
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
你可能感兴趣的内容