2
다음 테이블에서 내 테이블에 중복 된 데이터가 표시됩니다. 나는이 중복 행을 삭제하지만 그냥 하나를 떠나 삭제 쿼리로 바꿀 수있는 방법을 알고 싶습니다. 내 테이블에 자동 증가 ID 열이 있습니다.일치하는 3 열의 값을 기반으로하는 경우 mysql에서 중복 된 값을 삭제하십시오.
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
예. 나는 쿼리를 udpated 질문을했습니다. – Bignadad