MySQL 去除重複 Error Code:1093

自己在插入數據的時候,剛開始用,然後莫名的插入了兩條數據,想要去除一條保留一條,由此引發了去網上搜索資料的艱難之路。


現在可以看到,我已經插入了兩條一模一樣的記錄。


首先我的想法是把重複的數據給挑出來。


通過上述語句我就把重複的記錄給挑了出來。


現在我準備刪除其中的一條記錄


結果出來了這個錯誤

Error Code: 1093. You can't specify target table 'course' for update in FROM clause

(本人拙劣英語翻譯:你不能在FROM 從句中使你的目標表‘table’具體化)

這是啥意思呢?繼續官方資料。

發現也就是你不能先從同一張表中select某些值然後再對錶結構進行更改的操作(delete,update之類的)

我們可以通過設置一箇中間表來進行過渡。這樣就沒問題了。【參考資料:點擊打開鏈接


然後繼續思考去除重複的問題,我們要保留的肯定是第一條數據那麼,也就是在重複數據中較上面的那條,所以得想辦法把這個想法表達出來。

delete from a where (字段名) in (select 字段名 from group by 字段名 having count(*) > 1) and ID not in (select min(ID) from group by 字段名 having count(*)>1)

這上面的是通用方法。大家可以借鑑一下。但是得注意mysql不允許子表裏面也用相同的表名。【但是我悲劇了,我是直接插入數據的,也就是
兩條數據連ID都是一模一樣的。然後我就把它們都給刪除了,再插一條麼好了。很尷尬】

希望能幫到大家。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章