亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

刪除所有重復行,只刪除MySQL中的一個行?

刪除所有重復行,只刪除MySQL中的一個行?

回首憶惘然 2019-06-03 10:00:23
刪除所有重復行,只刪除MySQL中的一個行?如何刪除MySQL表中的所有重復數據?例如,使用以下數據:SELECT * FROM names;+----+--------+| id | name   |+----+--------+| 1  | google || 2  | yahoo  || 3  | msn    || 4  | google || 5  | google || 6  | yahoo  |+----+--------+我會用SELECT DISTINCT name FROM names;如果是SELECT查詢。我該怎么做DELETE只刪除副本而只保留一條記錄?
查看完整描述

2 回答

?
慕妹3242003

TA貢獻1824條經驗 獲得超6個贊

如果您想保持行的最低id價值:

DELETE FROM NAMES WHERE id NOT IN (SELECT * 
                    FROM (SELECT MIN(n.id)
                            FROM NAMES n                        GROUP BY n.name) x)

如果你想id最高值:

DELETE FROM NAMES WHERE id NOT IN (SELECT * 
                    FROM (SELECT MAX(n.id)
                            FROM NAMES n                        GROUP BY n.name) x)

子查詢中的子查詢對于MySQL是必要的,否則您將得到一個1093錯誤。


查看完整回答
反對 回復 2019-06-03
  • 2 回答
  • 0 關注
  • 659 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號