如果使用 MySQL 8.0 及以上版本,可以尝试使用窗口函数来实现一条 SQL 语句完成这个操作:
sql
DELETE t1 FROM t_dw_synl_tester t1
JOIN (
SELECT id_no, MAX(create_time) AS max_create_time
FROM t_dw_synl_tester
GROUP BY id_no
) t2 ON t1.id_no = t2.id_no AND t1.create_time < t2.max_create_time;
这里同样假设你的表中有一个字段create_time
表示时间,如果不是这个字段名,请根据实际情况进行修改。
请注意,在执行此 SQL 语句之前,务必备份你的数据,以防止意外情况发生。