#删除表中重复的值,保留第一个
USE user;
DELETE
FROM
user_t
WHERE
id IN (
(
SELECT
id
FROM
(SELECT * FROM user_t) t2
WHERE
NAME IN (
SELECT
NAME
FROM
(
SELECT
NAME
FROM
user_t
GROUP BY
NAME
HAVING
count(*) > 1
) temp
)
)
)
AND id NOT IN (
#获取到每个相同名称最小的值
SELECT
min(id)
FROM
((SELECT * FROM user_t) t3)
GROUP BY
NAME
HAVING
COUNT(NAME) > 1
)
太繁琐,可以这样分析:
分组,分组后保留id最小的,其余的删除
delete from score_t where name not in( (select min(name) as name from ((select * from score_t ) t) GROUP BY kecheng, score));