有時候,我們會在平時的工作中碰到如下的問題:
在乙個資料表開始的時候,由於考慮的不完全,可能主鍵配置沒有做好,可能在表中出現如下的重複資料
+------+-------+------+
| 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...