欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

mysql去重查詢的三種方法小結(jié)

 更新時間:2023年03月28日 16:23:16   作者:小馬穿云  
本文主要介紹了mysql去重查詢的三種方法小結(jié),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

前言

數(shù)據(jù)庫生成環(huán)境中經(jīng)常會遇到表中有重復(fù)的數(shù)據(jù),或者進行關(guān)聯(lián)過程中產(chǎn)生重復(fù)數(shù)據(jù),下面介紹三種剔除重復(fù)數(shù)據(jù)的方法,請針對自己的應(yīng)用場景選擇使用。

一、插入測試數(shù)據(jù)

下圖測試數(shù)據(jù)中user_name為lilei、zhaofeng的用戶是重復(fù)數(shù)據(jù)。

二、剔除重復(fù)數(shù)據(jù)方法

1.方法一:使用distinct

代碼如下(示例):

select distinct user_name,email,address from t_user;

如下圖,已將數(shù)據(jù)剔重,重復(fù)數(shù)據(jù)僅保留1條。

2.方法二:使用group by

SELECT user_name,email,address 
	FROM t_user 
	GROUP BY user_name, email, address;

如下圖,已將數(shù)據(jù)剔重,重復(fù)數(shù)據(jù)僅保留1條。

3.方法三:使用開窗函數(shù)

(1)如果你的數(shù)據(jù)庫是MySQL8以上版本你可以直接使用開窗函數(shù)row_number()

SELECT *
FROM(
    SELECT t.*, 
           ROW_NUMBER() OVER(PARTITION BY user_name
           ORDER BY last_login DESC) rn
    FROM table AS t
	) AS t_user
WHERE rn = 1;

(2)如果你的數(shù)據(jù)庫版本低于MySQL8,使用類row_number()方法

select user_name, email, address 
from (
	select 
		b.*,
		@rownum := @rownum+1 ,-- 定義用戶變量@rownum來記錄數(shù)據(jù)的行號
		if(@pdept=b.user_name,@rank:=@rank+1,@rank:=1) as rank,-- 如果當前分組user_name和上一次分組user_name相同,則@rank(對每一組的數(shù)據(jù)進行編號)值加1,否則表示為新的分組,從1開始
		@pdept:=b.user_name -- 定義變量@pdept用來保存上一次的分組id
	from (select * from t_user) b ,
		(select @rownum :=0 , @pdept := null ,@rank:=0) c  -- 初始化自定義變量值
	order by b.user_name,b.last_login desc -- 該排序必須,否則結(jié)果會不對
) result
where rank = 1;

如下圖,已將數(shù)據(jù)剔重,重復(fù)數(shù)據(jù)僅保留1條。

總結(jié)

到此這篇關(guān)于mysql去重查詢的三種方法小結(jié)的文章就介紹到這了,更多相關(guān)mysql去重查詢內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • linux下mysql5.7.19(tar.gz)安裝圖文教程

    linux下mysql5.7.19(tar.gz)安裝圖文教程

    這篇文章主要為大家詳細介紹了linux下mysql5.7.19tar.gz安裝圖文教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • SQL?Server實現(xiàn)全文搜索查詢詳解

    SQL?Server實現(xiàn)全文搜索查詢詳解

    這篇文章介紹了SQL?Server的全文搜索功能,文中通過示例代碼介紹的非常詳細。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-04-04
  • Mysql的 存儲過程procedure及具體案例

    Mysql的 存儲過程procedure及具體案例

    存儲過程是一組為了完成特定功能的SQL語句集合,經(jīng)編譯后存儲在數(shù)據(jù)庫中,用戶通過指定存儲過程的名字和參數(shù)(如果有)來執(zhí)行它,今天通過本文給大家介紹Mysql的 存儲過程procedure及具體案例,感興趣的朋友一起看看吧
    2024-06-06
  • CentOS7下mysql 8.0.16 安裝配置方法圖文教程

    CentOS7下mysql 8.0.16 安裝配置方法圖文教程

    這篇文章主要為大家詳細介紹了CentOS7下mysql 8.0.16 安裝配置方法圖文教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-05-05
  • MySQL用戶賬戶管理和權(quán)限管理深入講解

    MySQL用戶賬戶管理和權(quán)限管理深入講解

    這篇文章主要給大家介紹了關(guān)于MySQL用戶賬戶管理和權(quán)限管理的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-12-12
  • MySQL在Centos7環(huán)境安裝的完整步驟記錄

    MySQL在Centos7環(huán)境安裝的完整步驟記錄

    在CentOS7環(huán)境下安裝MySQL是一項常見的任務(wù),尤其對于那些沒有網(wǎng)絡(luò)連接或者需要在隔離環(huán)境中的開發(fā)者來說,離線安裝MySQL顯得尤為重要,這篇文章主要介紹了MySQL在Centos7環(huán)境安裝的完整步驟,需要的朋友可以參考下
    2024-10-10
  • MySQL分布式事務(wù)xa的介紹與使用小結(jié)

    MySQL分布式事務(wù)xa的介紹與使用小結(jié)

    xa指的是分布式事務(wù),傳統(tǒng)的事務(wù)針對的是單機MySQL,本文主要介紹了MySQL分布式事務(wù)xa的介紹與使用小結(jié),有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助
    2024-07-07
  • 詳解Mysql自動備份與恢復(fù)的幾種方法(圖文教程)

    詳解Mysql自動備份與恢復(fù)的幾種方法(圖文教程)

    本篇文章主要介紹了Mysql 自動備份與恢復(fù),主要有三種方法,有需要的可以了解一下。
    2016-11-11
  • MySQL最佳實踐之分區(qū)表基本類型

    MySQL最佳實踐之分區(qū)表基本類型

    這篇文章主要給大家介紹了關(guān)于MySQL最佳實踐之分區(qū)表基本類型的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學(xué)習(xí)或者使用MySQL具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • PHP版Mysql爆破小腳本

    PHP版Mysql爆破小腳本

    本文給大家分享的是使用php實現(xiàn)暴力破解mysql的小腳本代碼,非常的好用,有需要的小伙伴可以參考下
    2016-10-10

最新評論