2
我有下面的查詢顯示我在我的表中重複。我想知道我怎麼能把它變成刪除查詢來刪除這些重複的行,但只留下一個。我的表有一個自動增量ID列。刪除mysql中的重複項時,根據3列匹配的值
SELECT * FROM tbl_user_tmp AS t1
INNER JOIN (
SELECT name, activity, class, COUNT(1) AS cnt FROM tbl_user_tmp
WHERE user = 'test' AND disregard = 0
GROUP BY name, activity, class
HAVING cnt > 1
) AS t2
ON t1.name = t2.name AND t1.activity = t2.activity AND t1.class = t2.class
WHERE user = 'test' AND disregard = 0
GROUP BY t1.name, t1.activity, t1.class
我已經嘗試了下面的查詢,似乎工作,但即時通訊恐懼我失去了一些東西。它看起來正確嗎?
delete from tbl_user_tmp
where user='test' AND id not in
(
select minid from
(select min(id) as minid from tbl_user_tmp where user='test' group by name, activity, class) as newtable
)
我假設你想保持一個行? – Gervs 2014-09-25 20:21:46
是的。用我試過的查詢解決了問題。 – Bignadad 2014-09-25 20:29:49