MySQL中使用去重distinct方法的示例詳解
一 distinct
含義:distinct用來(lái)查詢(xún)不重復(fù)記錄的條數(shù),即distinct來(lái)返回不重復(fù)字段的條數(shù)(count(distinct id)),其原因是distinct只能返回他的目標(biāo)字段,而無(wú)法返回其他字段
用法注意:
1.distinct【查詢(xún)字段】,必須放在要查詢(xún)字段的開(kāi)頭,即放在第一個(gè)參數(shù);
2.只能在SELECT 語(yǔ)句中使用,不能在 INSERT, DELETE, UPDATE 中使用;
3.DISTINCT 表示對(duì)后面的所有參數(shù)的拼接取 不重復(fù)的記錄,即查出的參數(shù)拼接每行記錄都是唯一的
4.不能與all同時(shí)使用,默認(rèn)情況下,查詢(xún)時(shí)返回的就是所有的結(jié)果。
1.1只對(duì)一個(gè)字段查重
對(duì)一個(gè)字段查重,表示選取該字段一列不重復(fù)的數(shù)據(jù)。
示例表:psur_list
PLAN_NUMBER字段去重,語(yǔ)句:
SELECT DISTINCT PLAN_NUMBER FROM psur_list;
結(jié)果如下:
1.2多個(gè)字段去重
對(duì)多個(gè)字段去重,表示選取多個(gè)字段拼接的一條記錄,不重復(fù)的所有記錄
示例表:psur_list
PLAN_NUMBER和PRODUCT_NAME字段去重,語(yǔ)句:
SELECT DISTINCT PLAN_NUMBER,PRODUCT_NAME FROM psur_list;
結(jié)果如下:
期望結(jié)果:只對(duì)第一個(gè)參數(shù)PLAN_NUMBER取唯一值
解決辦法一:使用group_concat 函數(shù)
語(yǔ)句:
SELECT GROUP_CONCAT(DISTINCT PLAN_NUMBER) AS PLAN_NUMBER,PRODUCT_NAMEFROM psur_list GROUP BY PLAN_NUMBER
解決辦法二:使用group by
語(yǔ)句:
SELECT PLAN_NUMBER,PRODUCT_NAME FROM psur_list GROUP BY PLAN_NUMBER
結(jié)果如下:
1.3針對(duì)null處理
distinct不會(huì)過(guò)濾掉null值,返回結(jié)果包含null值
表psur_list如下:
對(duì)COUNTRY字段去重,語(yǔ)句:
SELECT DISTINCT COUNTRY FROM psur_list
結(jié)果如下:
1.4與distinctrow同義
語(yǔ)句:
SELECT DISTINCTROW COUNTRY FROM psur_list
結(jié)果如下:
二 聚合函數(shù)中使用distinct
在聚合函數(shù)中DISTINCT 一般跟 COUNT 結(jié)合使用。count()會(huì)過(guò)濾掉null項(xiàng)
語(yǔ)句:
SELECT COUNT(DISTINCT COUNTRY) FROM psur_list
結(jié)果如下:【實(shí)際包含null項(xiàng)有4個(gè)記錄,執(zhí)行語(yǔ)句后過(guò)濾null項(xiàng),計(jì)算為3】
到此這篇關(guān)于MySQL中使用去重distinct方法的示例詳解的文章就介紹到這了,更多相關(guān)MySQL 去重distinct 內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MySQL數(shù)據(jù)誤刪或者誤更新如何恢復(fù)詳細(xì)步驟(一看就會(huì))
本文主要為開(kāi)發(fā)人員提供在測(cè)試環(huán)境中恢復(fù)近期誤操作的少量數(shù)據(jù)的方法,首先介紹了如何下載并安裝MyFlash工具,然后詳細(xì)講解了如何利用該工具和MySQL的binlog日志來(lái)恢復(fù)誤刪或誤更新的數(shù)據(jù),介紹的非常詳細(xì),需要的朋友可以參考下2024-10-10MySQL數(shù)據(jù)庫(kù)的約束使用實(shí)例
約束是用來(lái)限制表中的數(shù)據(jù)長(zhǎng)什么樣子的,即什么樣的數(shù)據(jù)可以插入到表中,什么樣的數(shù)據(jù)插入不到表中,下面這篇文章主要給大家介紹了關(guān)于如何通過(guò)一文理解MySQL數(shù)據(jù)庫(kù)的約束與表的設(shè)計(jì)的相關(guān)資料,需要的朋友可以參考下2022-12-12MySQL 數(shù)據(jù)庫(kù)約束、聚合查詢(xún)和聯(lián)合查詢(xún)使用案例
這篇文章主要介紹了MySQL 數(shù)據(jù)庫(kù)約束、聚合查詢(xún)和聯(lián)合查詢(xún)使用案例,本文給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧2024-08-08深入解析mysql中order by與group by的順序問(wèn)題
本篇文章是對(duì)mysql中order by與group by的順序問(wèn)題進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06MySQL中UNION 和 JOIN 多表聯(lián)合查詢(xún)方式
本文介紹了在MySQL中UNION和JOIN兩種多表查詢(xún)的方式,包括它們的適用場(chǎng)景、語(yǔ)法和特性,JOIN用于關(guān)聯(lián)數(shù)據(jù),而UNION用于合并具有相同結(jié)構(gòu)但無(wú)直接關(guān)系的數(shù)據(jù),感興趣的朋友跟隨小編一起看看吧2024-11-11linux下mysql提示"mysql deamon failed to start"錯(cuò)誤的解決方法
網(wǎng)站突然連接不上數(shù)據(jù)庫(kù),于是朋友直接重啟了一下服務(wù)器。進(jìn)到cli模式下,執(zhí)行 service myqsld start 發(fā)現(xiàn)還是提示"mysql deamon failed to start"錯(cuò)誤信息2013-04-04mysql數(shù)據(jù)庫(kù)太大了如何備份與還原
今天小編就為大家分享一篇關(guān)于mysql數(shù)據(jù)庫(kù)太大了如何備份與還原,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-03-03