刪除資料庫表中重複的記錄

2021-06-06 08:29:14 字數 932 閱讀 4653

有時候,我們會在平時的工作中碰到如下的問題:

在乙個資料表開始的時候,由於考慮的不完全,可能主鍵配置沒有做好,可能在表中出現如下的重複資料

+------+-------+------+

| id   | name  | age  |

+------+-------+------+

|    1 | jason |   23 |

|    2 | jason |   23 |

|    3 | jason |   23 |

|    4 | alex  |   24 |

|    5 | alex  |   24 |

+------+-------+------+

現在當我們希望去掉重複的姓名資料得到如下的結果

+------+-------+------+

| id   | name  | age  |

+------+-------+------+

|    3 | jason |   23 |

|    5 | alex  |   24 |

+------+-------+------+

開始寫出了如下的一句sql delete from tb_name where id not in (select max(id) from tb_name group by name);

但是執行之後我們會發現如下錯誤:error 1093 (hy000): you can't specify target table 'demo1' for update in from clause

後來換了一種寫法,可以解決這個問題

delete from tb_name where id not in (select id from (select max(id) as id from tb_name group by name) as tmp);

如何刪除資料庫中的重覆記錄(一)

今天去西安一家公司去面試,其中有一道面試題是這樣的 如何刪除在資料表中完全相同的記錄,如果兩條相同的記錄主鍵不同,那麼又應該如何刪除 當時因為是很簡單的題目就直接用sql語句完成,面試官看了之後說這個有問題。回來研究一下果然錯了。現在把研究的步驟分享下來。研究條件 window7 no instal...

刪除資料表中的重覆記錄

刪除交通違章資料表中的 重覆記錄 同一時間 haptime 車號牌 numberplate 處罰原因 reason 一 方法原理 1 中,每一條記錄都有乙個rowid,rowid在整個中是唯一的,rowid確定了每條記錄是在oracle中的哪乙個資料檔案 塊 行上。2 在重複的記錄中,可能所有列的內...

刪除資料庫重複資料

上圖是資料庫定義,資料中儲存了97萬條資料。我要刪除其中的的重複資料,並保留其中一條。其中,如果merchantid,commodityid,price,pricetime 只看天數 相同的話,那麼就進行刪除。delete from history where merchantid,commodit...