删除最近80后的MYSQL值

Bro*_*oak 1 php mysql sql

我目前正在使用:

SELECT * FROM users ORDER BY date_time DESC LIMIT 0, 80
Run Code Online (Sandbox Code Playgroud)

要显示80个最新的用户名,我如何进行查询,以便删除此80之后的任何其他条目?

我认为我需要一个cron作业,但它需要执行什么样的查询?

val*_*lex 5

以下是不同的方式:

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)

SQL小提琴演示

没有限制:

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)

SQLFiddle演示