id | name | price |
1 | 茶叶 | 90 |
| ||
3 | 手机 | 1250 |
4 | 笔记本 | 8980 |
如图,假设有表A,A中数据如下,如何用一条sql语句删除表中重复数据,保留其id值最小的那一条数据(也就是id为1,3,4的保留)
1.首先要判断是否重复,我们可以用数据库自带的GROUP BY 语句给重复数据分组
2.然后再筛选出id最小的那条记录
3.最后删除不在那条记录的数据即可
DELETE FROM A
WHERE id NOT IN
(
SELECT aa.d FROM
(
SELECT MIN(id) d FROM A GROUP BY name,price
HAVING COUNT(*) > 0
) aa
)