写一个MySQL语句,删除user表中age、school、address三个字段同时重复的数据,保留id最大的一条
时间: 2023-03-21 12:01:10 浏览: 113
经典SQL面试题.doc
可以使用以下 MySQL 语句来实现:
DELETE FROM user WHERE id NOT IN (SELECT * FROM (SELECT MAX(id) FROM user GROUP BY age, school, address) AS temp);
这个语句会在 user 表中删除所有 age、school、address 三个字段都相同的记录,但是保留每组记录中 id 最大的一条。
需要注意的是,这个语句并不会删除所有的重复记录,只会删除 age、school、address 三个字段完全相同的记录。如果想要删除所有的重复记录,需要使用一些其他的技巧。例如,可以使用临时表或自连接的方式来实现。
阅读全文