有一個表里面有id
,mid
兩個字段霎终,id
是主鍵,想刪除重復的mid
翁垂。分兩步完成:
- 創(chuàng)建一個表绵跷,建立一個
tmp
表記錄有哪些mid
是重復的,以及重復的mid
中笙僚,最小的id
(稍后我們在重復的mid
中將保留這個最小的id
)
CREATE TABLE tmp (
SELECT
mid,
MIN(id) AS id
FROM
comments
GROUP BY
mid
HAVING
COUNT(mid) > 1
)
- 進行刪除操作
DELETE a.*
FROM
comments a,
tmp b
WHERE
a.mid = b.mid
AND a.id != b.id
不建立tmp
表似乎也可以芳肌,但是需要將臨時表重命名一下,否則會報這個錯誤
[Err] 1093 - You can't specify target table 'a' for update in FROM clause