亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

mysql如何查詢重復(fù)數(shù)據(jù)并刪除

 更新時(shí)間:2023年12月22日 14:32:23   作者:pendant59  
這篇文章主要介紹了mysql如何查詢重復(fù)數(shù)據(jù)并刪除問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

mysql查詢重復(fù)數(shù)據(jù)并刪除

表名: articles 

內(nèi)容重復(fù)字段:title

準(zhǔn)備過(guò)程

Navicate 數(shù)據(jù)表導(dǎo)出sql,將導(dǎo)出dsql導(dǎo)入到本地測(cè)試庫(kù),查看title字段為varchar類型且沒有索引,本地庫(kù)title設(shè)置title字段普通索引

(未設(shè)置索引的情況下sql查詢耗時(shí)太久,等了一分鐘都沒出結(jié)果)

Navicate執(zhí)行操作過(guò)程

1. 查詢標(biāo)題重復(fù)的數(shù)據(jù)量:

select count(*) from articles
where title in
 (select title from articles group by title having count(*) > 1)

2. 查詢重復(fù)的數(shù)據(jù)量,排除主鍵id最小的重復(fù)記錄

select count(*) from articles
where title in 
(select title from articles group by title having count(*) > 1) 
and id not in 
( select min(id) from  articles  group by title  having count(* )>1)

3. 查詢重復(fù)的數(shù)據(jù)的id,和 title

select id,title from articles where title in 
(select title from articles group by title having count(*) > 1) 
and id not in 
( select min(id) from  articles  group by title  having count(* )>1)

4. 查詢所有重復(fù)的記錄的id兵進(jìn)行字符串拼接,排除主鍵id最小的重復(fù)記錄

select GROUP_CONCAT(id) from articles where title in
 (select title from articles group by title having count(*) > 1 )
and id not in 
( select min(id) from  articles  group by title  having count(* )>1 ) 

5. 將第4步查詢出來(lái)的重復(fù)數(shù)據(jù)id拼接的字符串作為條件進(jìn)行數(shù)據(jù)刪除

delete from articles where id in (第4步查詢出的id字符串)

6. 檢查本地測(cè)試庫(kù)中article表內(nèi)重復(fù)數(shù)據(jù)已被刪除,將第5步的sql在線上執(zhí)行。第四步和第五步要多次執(zhí),因?yàn)镚ROUP_CONCAT 一次拼接的id 是有限的,可能沒有全部拼接出來(lái)

方法二:

該方法 title字段必須加索引,加索引的情況下,7W條數(shù)據(jù)刪除8K條執(zhí)行了49秒

DELETE
FROM
	表名稱
WHERE
	重復(fù)字段名 IN (
		SELECT
			tmpa.重復(fù)字段名
		FROM
			(
				SELECT
					重復(fù)字段名
				FROM
					表名稱
				GROUP BY
					重復(fù)字段名
				HAVING
					count(1) > 1
			) tmpa
	)
AND id NOT IN (
SELECT
	tmpb.minid
FROM
	(
		SELECT
			min(id) AS minid
		FROM
			表名稱
		GROUP BY
			重復(fù)字段名
		HAVING
			count(1) > 1
	) tmpb
)

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • MySQL命令行下18個(gè)常用命令

    MySQL命令行下18個(gè)常用命令

    在日常的網(wǎng)站維護(hù)和MYSQL數(shù)據(jù)庫(kù)管理中,會(huì)用到非常多的MYSQL命令,下面給大家介紹18個(gè)管理MYSQL數(shù)據(jù)庫(kù)時(shí)最常使用的命令
    2018-03-03
  • MySQL日志管理和備份與恢復(fù)

    MySQL日志管理和備份與恢復(fù)

    這篇文章主要介紹了MySQL如何實(shí)現(xiàn)日志的管理,備份與恢復(fù),本文有一定的參考價(jià)值,感興趣的小伙伴可以參考閱讀
    2023-04-04
  • MySQL查詢數(shù)據(jù)庫(kù)所有表名以及表結(jié)構(gòu)其注釋(小白專用)

    MySQL查詢數(shù)據(jù)庫(kù)所有表名以及表結(jié)構(gòu)其注釋(小白專用)

    查詢數(shù)據(jù)庫(kù)所有表的表名、備注,其實(shí)也是比較常見的操作,這篇文章主要給大家介紹了關(guān)于MySQL查詢數(shù)據(jù)庫(kù)所有表名以及表結(jié)構(gòu)其注釋的相關(guān)資料,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2024-08-08
  • MySQL中WITH?AS語(yǔ)句的使用方法舉例

    MySQL中WITH?AS語(yǔ)句的使用方法舉例

    在MySQL中WITH AS語(yǔ)法用于創(chuàng)建一個(gè)臨時(shí)的命名查詢(也稱為子查詢),這些子查詢可以在后續(xù)的查詢中引用,從而簡(jiǎn)化查詢語(yǔ)句的編寫,這篇文章主要給大家介紹了關(guān)于MySQL中WITH?AS語(yǔ)句的使用方法,需要的朋友可以參考下
    2024-06-06
  • MySQL關(guān)于ERROR 1290 (HY000)報(bào)錯(cuò)解決方法

    MySQL關(guān)于ERROR 1290 (HY000)報(bào)錯(cuò)解決方法

    在本篇文章里小編給大家整理的是關(guān)于MySQL關(guān)于ERROR 1290 (HY000)報(bào)錯(cuò)的解決方法,有興趣的朋友們可以參考下。
    2019-09-09
  • 通過(guò)存儲(chǔ)過(guò)程動(dòng)態(tài)創(chuàng)建MySQL對(duì)象的流程步驟

    通過(guò)存儲(chǔ)過(guò)程動(dòng)態(tài)創(chuàng)建MySQL對(duì)象的流程步驟

    在當(dāng)今數(shù)據(jù)驅(qū)動(dòng)的世界中,高效的數(shù)據(jù)庫(kù)管理至關(guān)重要,本文將展示如何通過(guò)存儲(chǔ)過(guò)程自動(dòng)化地創(chuàng)建各種?MySQL?數(shù)據(jù)庫(kù)對(duì)象,通過(guò)這些方法,我們可以快速響應(yīng)業(yè)務(wù)需求,提高數(shù)據(jù)庫(kù)管理的靈活性和效率,需要的朋友可以參考下
    2024-10-10
  • Mysql日期格式以及內(nèi)置日期函數(shù)用法詳解

    Mysql日期格式以及內(nèi)置日期函數(shù)用法詳解

    MySQL中有多種數(shù)據(jù)類型可以用于日期和時(shí)間的表示,這篇文章主要給大家介紹了關(guān)于Mysql日期格式以及內(nèi)置日期函數(shù)用法的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-05-05
  • MySql 5.7.17壓縮包免安裝的配置過(guò)程圖解

    MySql 5.7.17壓縮包免安裝的配置過(guò)程圖解

    這篇文章主要介紹了MySql 5.7.17壓縮包免安裝的配置過(guò)程圖解,本文圖文并茂給大家介紹的非常詳細(xì),感興趣的朋友跟隨腳本之家小編一起學(xué)習(xí)吧
    2018-05-05
  • MySQL監(jiān)控Innodb信息工作流程

    MySQL監(jiān)控Innodb信息工作流程

    這篇文章主要為大家介紹了MySQL監(jiān)控Innodb信息工作流程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2024-02-02
  • MySQL快速插入大量數(shù)據(jù)的解決方案和代碼示例

    MySQL快速插入大量數(shù)據(jù)的解決方案和代碼示例

    在這篇博客中,我們將深入探討如何高效插入大量數(shù)據(jù)到MySQL數(shù)據(jù)庫(kù),無(wú)論你是數(shù)據(jù)庫(kù)新手還是經(jīng)驗(yàn)豐富的開發(fā)者,這篇文章都將為你提供實(shí)用的解決方案和代碼示例,幫助你解決插入3萬(wàn)條數(shù)據(jù)需要20多秒的問(wèn)題,需要的朋友可以參考下
    2024-08-08

最新評(píng)論