Mysql 是否使用SQL语句或存储过程删除除最近的行以外的所有重复行?
我正在使用MySQL 5,需要编写SQL语句(或存储过程,如果需要)来删除给定设备表中除最近一行(最年轻的创建时间)以外的所有重复行吗 这是表格:Mysql 是否使用SQL语句或存储过程删除除最近的行以外的所有重复行?,mysql,Mysql,我正在使用MySQL 5,需要编写SQL语句(或存储过程,如果需要)来删除给定设备表中除最近一行(最年轻的创建时间)以外的所有重复行吗 这是表格: desc user_detail; 收益率: | Field | Type | Null | Key | Default | Extra | +-----------------+--------------+------+-----+----
desc user_detail;
收益率:
| Field | Type | Null | Key | Default | Extra |
+-----------------+--------------+------+-----+---------------------+-----------------------------+
| user_id | varchar(200) | NO | PRI | | |
| device | text | YES | | NULL | |
| created_time | timestamp | NO | | 0000-00-00 00:00:00 | |
| updated_time | timestamp | NO | | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |
这可以通过
exists
自连接完成:
delete from user_detail a where exists (
select 1 from user_detail b
where a.device = b.device
and b.created_time > a.created_time
)
我看到那个设备是可空的,当设备为空时,你想发生什么?@BryanNewman问得好。。。这个表是从不同的Rest调用填充的,所以设备可以为null,但是有很多DUP,这让我们对这个特定的查询感到疑惑。谢谢你的邀请。对不起,我把自己弄糊涂了,我第一次就说对了。