bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

mysql怎么刪除重復數據

這篇文章主要講解了“MySQL怎么刪除重復數據”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“mysql怎么刪除重復數據”吧!

創新互聯公司是專業的章丘網站建設公司,章丘接單;提供成都網站建設、成都做網站,網頁設計,網站設計,建網站,PHP網站建設等專業做網站服務;采用PHP框架,可快速的進行章丘網站開發網頁制作和功能擴展;專業做搜索引擎喜愛的網站,專業的做網站團隊,希望更多企業前來合作!

sku對應的重量表,應該一個sku_id 對應唯一 一條重量數據,由于程序錯誤導致出現一樣的冗余數據。只保留一條,其他的刪除。

字段說明
id自增
sku_idsku_id標識
weight重量

假設表名:weight

查詢有重復數據的列表

SELECT sku_id,COUNT(id) FROM weight GROUP BY sku_id HAVING COUNT(sku_id) > 1

查詢重復數據里面每個最小的id

SELECT min(id) FROM weight   GROUP BY sku_id HAVING COUNT(sku_id) > 1

查詢去掉重復數據最小id的其他數據

SELECT id,sku_id FROM weight WHERE sku_id IN(
    SELECT sku_id FROM weight   GROUP BY sku_id HAVING COUNT(sku_id) > 1)AND id NOT IN(
    SELECT MIN(id) FROM weight   GROUP BY sku_id HAVING COUNT(sku_id) > 1)

刪除去掉重復數據最小id的其他數據

DELETE FROM weight WHERE sku_id IN(
    SELECT sku_id FROM weight   GROUP BY sku_id HAVING COUNT(sku_id) > 1)AND id NOT IN(
    SELECT MIN(id) FROM weight   GROUP BY sku_id HAVING COUNT(sku_id) > 1)

原因是:刪除這個表的同時又查詢了這個表,查詢這個表的同時又去刪除了這個表,可以理解為死鎖。mysql不支持這種刪除查詢同一張表的操作

錯誤代碼: 1093You can't specify target table 'weight' for update in FROM clause

解決辦法如下:把要刪除的數據查詢出來做為一個第三方表,然后篩選刪除。

DELETE FROM `weight` WHERE sku_id IN(
    SELECT sku_id FROM (SELECT sku_id FROM `weight` GROUP BY sku_id HAVING COUNT(sku_id) > 1) table1)AND id NOT IN (
    SELECT id FROM (SELECT MIN(id) AS id FROM `weight` GROUP BY sku_id HAVING COUNT(sku_id) > 1) table2)

更新也和上面操作原理相同。

感謝各位的閱讀,以上就是“mysql怎么刪除重復數據”的內容了,經過本文的學習后,相信大家對mysql怎么刪除重復數據這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創新互聯,小編將為大家推送更多相關知識點的文章,歡迎關注!

分享文章:mysql怎么刪除重復數據
標題網址:http://vcdvsql.cn/article28/pejdcp.html

成都網站建設公司_創新互聯,為您提供網站制作App設計企業網站制作面包屑導航網站導航

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

網站優化排名