我目前正在使用:
SELECT * FROM users ORDER BY date_time DESC LIMIT 0, 80
Run Code Online (Sandbox Code Playgroud)
要显示80个最新的用户名,我如何进行查询,以便删除此80之后的任何其他条目?
我认为我需要一个cron作业,但它需要执行什么样的查询?
以下是不同的方式:
delete users from users
LEFT JOIN
(
select id from users order by date_time DESC LIMIT 0, 80) t1 ON users.id=t1.id
where t1.id is null
Run Code Online (Sandbox Code Playgroud)
没有限制:
delete users from users
LEFT JOIN
(
select id from
(
SELECT id,
@curRow := @curRow + 1 AS row_number
FROM users,(SELECT @curRow := 0) r
ORDER BY date_time DESC) t where row_number<=80
) t1 ON users.id=t1.id
where t1.id is null
Run Code Online (Sandbox Code Playgroud)