mysql - 如何删除除最新的 50 行之外的所有行

标签 mysql database

我如何删除表 recentposts 中的所有行

DELETE FROM recentposts WHERE recentposts.`userId` = 12 AND recentposts.`Id` 
NOT IN (SELECT * FROM recentposts WHERE `userId` = 12 ORDER BY viewdate LIMIT 50)

我尝试了很多类似的方法,但都没有用。谁能告诉我如何在 Mysql 中执行此操作。

最佳答案

这个呢?

DELETE FROM recentposts
WHERE
    recentposts.`userId` = 12
    AND
    recentposts.`Id` NOT IN (SELECT Id
        FROM recentposts
        WHERE `userId` = 12
        ORDER BY viewdate DESC LIMIT 50)

关于mysql - 如何删除除最新的 50 行之外的所有行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7227546/

相关文章:

java - 初始化新项目后的 Spring Error LoggingFailureAnalysisReporter

mysql - 如何将sql日期格式unix时间戳转换为dd mm yy格式的日期格式?

database - 如果我可以将我的数据存储在文本文件中并且可以轻松处理这些文件,我为什么要使用像 Mysql、oracle 等数据库

查询中的 MySQL NAND/NOR 操作

javascript - HTML5 本地数据库插入

php - 获取 Laravel 坐标半径范围内的用户

PHP同时向MySQL数据库写入多于1行

mysql - 在 left join vs. 中使用 Inner Join 的性能多个左连接

sql - 如何为以下结果创建 SQL 语句?

java - 除了数据库默认位置之外,我如何在android中存储或获取sqlite数据库