国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Mysql 刪除重復數(shù)據(jù)保留一條有效數(shù)據(jù)

這篇具有很好參考價值的文章主要介紹了Mysql 刪除重復數(shù)據(jù)保留一條有效數(shù)據(jù)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

==============================

?Copyright 蕃薯耀?2023-01-31

蕃薯耀的博客_CSDN博客-蕃薯耀分享,java,js領域博主文章來源地址http://www.zghlxwxcb.cn/news/detail-595287.html

一、Mysql 刪除重復數(shù)據(jù),保留一條有效數(shù)據(jù)

DELETE FROM SZ_Building WHERE id NOT IN (
  SELECT t.min_id FROM (
    SELECT MIN(id) AS min_id FROM SZ_Building GROUP BY BLDG_NO
  ) t
)
;

原理:

  1. 根據(jù)字段對數(shù)據(jù)進行分組,查詢出所有分組的最小ID(即要保留的不重復數(shù)據(jù))
  2. 將查詢出來的數(shù)據(jù)(所有不重復的數(shù)據(jù))存放到臨時表中
  3. 從原來的表中刪除ID不在臨時表中的重復數(shù)據(jù)

當表的數(shù)據(jù)量達到百萬級以上時,刪除數(shù)據(jù)很慢,建議這樣處理:

  • 先把min(id)存到臨時表(SZ_Building_id):
create table SZ_Building_id
SELECT MIN(id) AS id FROM SZ_Building GROUP BY BLDG_NO
;
  • 給臨時表的id設置成主鍵或者創(chuàng)建索引(加快后面的查詢速度)
alter table add index ind_xxName(字段名:如ID);
  • 刪除id不在臨時表的數(shù)據(jù)。
delete from ?SZ_Building where id not in(
  select id from SZ_Building_id
)
;

二、Mysql 刪除重復數(shù)據(jù)(多個字段分組)

DELETE FROM SZ_Water_Level WHERE id NOT IN (
  SELECT t.min_id FROM (
    SELECT MIN(id) AS min_id FROM SZ_Water_Level GROUP BY CZBM,SJ,SW
  ) t
)
;

三、Mysql 查詢出可以刪除的重復數(shù)據(jù)

SELECT * FROM SZ_Building WHERE id NOT IN (
  SELECT t.min_id FROM (
    SELECT MIN(id) AS min_id FROM SZ_Building GROUP BY BLDG_NO
  ) t
)
;

SELECT * FROM SZ_Building WHERE BLDG_NO IN (
	SELECT BLDG_NO FROM SZ_Building GROUP BY BLDG_NO HAVING COUNT(1)>1
) 
AND id NOT IN (
	SELECT MIN(id) FROM SZ_Building GROUP BY BLDG_NO HAVING COUNT(1)>1
)
;

?==============================

?Copyright 蕃薯耀?2023-01-31

蕃薯耀的博客_CSDN博客-蕃薯耀分享,java,js領域博主

到了這里,關于Mysql 刪除重復數(shù)據(jù)保留一條有效數(shù)據(jù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • SQL Server刪除重復數(shù)據(jù)只保留一條

    介紹 最近在導入數(shù)據(jù)庫數(shù)據(jù), 有時候給的數(shù)據(jù)源文件,存在重復數(shù)據(jù), 需要清除但是還需要保留一條記錄的需求. 本文將介紹如何使用SQL Server來實現(xiàn)這個需求。 流程 下面是實現(xiàn)刪除重復數(shù)據(jù)的流程,我們可以用表格展示每個步驟: 步驟?? ?描述 步驟一? ? 先看看有哪些重復

    2024年02月01日
    瀏覽(48)
  • SqlServer中根據(jù)某幾列獲取重復的數(shù)據(jù)將其刪除并保留最新一條

    SqlServer中根據(jù)某幾列獲取重復的數(shù)據(jù)將其刪除并保留最新一條

    有時候,我們某個數(shù)據(jù)表中,可能有幾列的數(shù)據(jù)都是一樣的,此時我們可能想查詢出這幾列數(shù)據(jù)相同的所有數(shù)據(jù)行,并保留最新一條,將其他重復的數(shù)據(jù)刪除。 假設我們有如下數(shù)據(jù)表: 此時我們可以使用 ROW_NUMBER 函數(shù),根據(jù)某幾列查詢出重復數(shù)據(jù)的新的排序列,該排序列就

    2024年04月28日
    瀏覽(27)
  • SQL刪除重復的記錄(只保留一條)-窗口函數(shù)row_number()

    SQL刪除重復的記錄(只保留一條)-窗口函數(shù)row_number()

    關于刪除mysql表中重復數(shù)據(jù)問題,本文中給到兩種辦法:聚合函數(shù)、窗口函數(shù)row_number()的方法。 (注意:MySQL從8.0開始支持窗口函數(shù)) 測試數(shù)據(jù)準備:首先創(chuàng)建一個測試表test,插入一些測試數(shù)據(jù),模擬一些重復數(shù)據(jù)(最終目標:刪除重復數(shù)據(jù),但不處理null行) 先查詢下重復數(shù)

    2024年02月05日
    瀏覽(30)
  • MySQL大量臟數(shù)據(jù),如何只保留最新的一條?

    MySQL大量臟數(shù)據(jù),如何只保留最新的一條?

    因為系統(tǒng)的一個Bug,導致數(shù)據(jù)庫表中出現(xiàn)重復數(shù)據(jù),需要做的是刪除重復數(shù)據(jù)且只保留最新的一條數(shù)據(jù)。 具體場景是這樣的 當然有人會說上面的問題我們可以建一個 order_no + cost_id 的組合唯一索引,這樣就算代碼有bug但至少數(shù)據(jù)庫表中不會有臟數(shù)據(jù)。 似乎這樣就可以了,然

    2023年04月20日
    瀏覽(22)
  • 解決MySQL中分頁查詢時多頁有重復數(shù)據(jù),實際只有一條數(shù)據(jù)的問題

    解決MySQL中分頁查詢時多頁有重復數(shù)據(jù),實際只有一條數(shù)據(jù)的問題

    有一個離奇的BUG,在查詢時,第一頁跟第二頁有一個共同的數(shù)據(jù)。有的數(shù)據(jù)卻不顯示。 后來發(fā)現(xiàn)是在SQL排序時沒用主鍵排序。 解決:使用主鍵排序 以下是我準備的舉例,可以自己試試。 分頁查詢公式:分頁查詢–他的公式為(偽代碼): [NOT] LIMIT (curPage-1)*pageSize,pageSize 執(zhí)行

    2024年02月16日
    瀏覽(16)
  • 怎么有效地查詢MySQL表中的重復數(shù)據(jù)

    在MySQL數(shù)據(jù)庫中,偶爾會遇到需要查找表中出現(xiàn)的重復數(shù)據(jù)的情況。這種情況下,我們可以通過編寫一些SQL查詢語句輕松地找到并處理這些重復行。本文將介紹一些常見的方法和技巧,幫助你有效地查詢MySQL表中的重復數(shù)據(jù)。 方法一:使用COUNT()函數(shù)查詢重復行 COUNT()函數(shù)是M

    2024年02月07日
    瀏覽(24)
  • 在 MySQL 數(shù)據(jù)庫中刪除重復記錄的步驟

    當我們在處理數(shù)據(jù)庫中的數(shù)據(jù)時,有時候會出現(xiàn)重復記錄的情況,這些重復記錄會影響數(shù)據(jù)的正確性,需要將其刪除。下面是在 MySQL 數(shù)據(jù)庫中刪除重復記錄的步驟: 首先,我們需要找到數(shù)據(jù)庫表中的重復記錄??梢允褂靡韵?SQL 語句查詢表中所有的重復記錄: 其中, table_

    2024年02月15日
    瀏覽(92)
  • MySQL 聯(lián)表查詢重復數(shù)據(jù)并刪除(子查詢刪除記錄) SQL優(yōu)化

    數(shù)據(jù)庫表介紹: table_a :主表(小表,表數(shù)據(jù)不可重復) table_b :流水表(大表,記錄審核流水數(shù)據(jù)) 注:兩表表結(jié)構大致一致,流水表增加一個審核狀態(tài)的字段 業(yè)務邏輯: 主表保存唯一數(shù)據(jù),流水表記錄審核流水數(shù)據(jù),用于后續(xù)展示,并在審核成功后插入主表,在插入流

    2023年04月08日
    瀏覽(30)
  • mysql -- 左連接一對多只取一條,去重重復字段

    ? ? ? ? 例如,給你一張用戶表,還有一張地區(qū)信息表(每條數(shù)據(jù)都是到省 - 市 - 縣 的地區(qū)信息,具體到縣區(qū)),用戶表中有用戶所在市區(qū)字段,你要根據(jù) 地區(qū)信息表 查用戶的所在市區(qū)的市區(qū)編碼。就會出現(xiàn)一個情況,用戶表 左連接 地區(qū)信息表? 根據(jù)市區(qū)信息去匹配,一

    2024年02月16日
    瀏覽(21)
  • mysql將多條數(shù)據(jù)合并成一條

    mysql將多條數(shù)據(jù)合并成一條

    實現(xiàn)將多條數(shù)據(jù)合并為一條數(shù)據(jù),在mysql中可以通過?GROUP_CONCAT 函數(shù)實現(xiàn) 解決方案:用 GROUP_CONCAT -- 主表單個字段單個id,對應子表多個id 多字段如何處理 GROUP_CONCAT(CONCAT_WS(\\\',\\\', type , typename ) SEPARATOR \\\',\\\') IN在子查詢中不起作用group_concat,解決方法見 ↓ IN在子查詢中不起作用group

    2024年02月12日
    瀏覽(19)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包