在数据库的操作中,经常会遇到有重复的数据,并且这些重复的行是没用的数据,需要删除,可以采用以下几种方式删除。
1. 使用not in 删除重复行
这里是根据名称和价格分组,拿到不重复数据的最大ID值,然后删除不在这最大ID值的行,即可删除重复行。
DELETE FROM fruit_test
WHERE id NOT IN (SELECT MAX(id) as id
FROM fruit_test
GROUP BY name, price);
2. 使用EXCEPT删除重复行
使用EXCEPT减去要留下的数据,将重复数据删除
DELETE FROM test
WHERE id IN ( SELECT id
rowid
FROM fruit_test
EXCEPT
SELECT MAX(id)
rowid
FROM fruit_test
GROUP BY name, price) ;
未经允许不得转载:天府数据港官方信息博客 » MySQL学习笔记(21)
客官点个赞呗! (0)