MYSQL-按日期排序后最后5行

Min*_*Ant 3 mysql sorting datetime alias

我正在尝试执行一个MYSQL命令,该命令用给定的UserID抓取所有行,按日期对它们进行排序,然后只返回前5个.

排序命令是

ORDER BY date
Run Code Online (Sandbox Code Playgroud)

获得最后5个的命令是

WHERE ROWNUM <= 5
Run Code Online (Sandbox Code Playgroud)

WHERE在ORDER之前,所以它是向后的.所以我想我必须在mysql语句中有一个Mysql语句.

这是我的尝试.我收到别名错误,所以我将AS T1添加到命令中.

SELECT * FROM 
 (SELECT voting_id, caption_uid, voting_date, rating FROM voting 
   WHERE user_id = $inUserID  AS T1 
    ORDER BY voting_date) 
 WHERE ROWNUM <= 5 AS T2;
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

Pas*_*TIN 11

在使用MySQL时,为什么不使用该LIMIT子句,只保留前5个结果?

select *
from your_table
order by your_column
limit 0, 5
Run Code Online (Sandbox Code Playgroud)


引用手册页的一部分select:

LIMIT子句可用于约束SELECT语句返回的行数.LIMIT取一个或两个数字参数,它们都必须是非负整数常量(使用预准备语句时除外).

使用两个参数,第一个参数指定要返回的第一行的偏移量,第二个参数指定要返回的最大行数.