mysql - SQL - 如何从内部语句中选择 TOP 5

标签 mysql sql select

我有以下查询正常工作。

 SELECT * 
    FROM (
         SELECT * 
         FROM table 
         WHERE name IS NULL 
         ORDER BY date DESC 
         LIMIT 20
         ) AS T 
    ORDER BY date ASC;

我想要的是选择该 sql 选择查询的前 5 条记录。所以根据我阅读的帖子,我应该只需要添加前 5 个。请参见下面:

 SELECT TOP 5 * 
        FROM (
             SELECT * 
             FROM table 
             WHERE name IS NULL 
             ORDER BY date DESC 
             LIMIT 20
             ) AS T 
        ORDER BY date ASC;

不幸的是,mysql 告诉我存在语法错误,但我不明白。预先感谢您的答复。干杯。马克

最佳答案

只需添加另一个限制..

 SELECT * 
    FROM (
         SELECT * 
         FROM table 
         WHERE name IS NULL 
         ORDER BY date DESC 
         LIMIT 20
         ) AS T 
    ORDER BY date ASC
    LIMIT 5;

关于mysql - SQL - 如何从内部语句中选择 TOP 5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10190244/

相关文章:

mysql - SQL。如何在同一张表的不同行中工作/比较/查找差异

MySQL - 选择第一个/最后一个不同的行

mysql - Centos - yum 更新因依赖项引发后缀错误

sql - 向oracle查询添加 'distinct'关键字会无故抹杀查询性能

sql - 有关SQL Server优化子查询与联接的问题

php - 从第二个表返回搜索结果

MYSQL - 'SELECT' 和 'AS 只能创建一个列..如何让它们更多?

python - 从列表交互中将数据插入 mysql 表的最佳方法

mysql - 从mysql查询中获取匹配记录

php - 使用连接或子查询需要来自 mysql 中几个表的数据