[英]Mysql - return last 3 results in table
我想知道是否有一种简单的方法仅用一条sql语句返回表中的最后三个结果,但是按该顺序,即如果有盘旋的结果,它将以98、99、100的顺序返回,而不是简单地按ID DESC和限制3(按顺序返回100、99、98)
任何帮助,不胜感激。
ps在这种情况下,可以说我不知道结果的数量,也不想真正发送2个sql请求只是为了找到数量(对于任何OFFSET答案)。
一种方法是使用DESC
,然后再次对其进行排序:
SELECT * FROM (SELECT * FROM some_table ORDER BY id DESC LIMIT 3) a ORDER BY id
我猜有两个选择。
您可以使用DESC按照相反的顺序返回它们,而只需在应用程序代码中再次颠倒该顺序即可。 这可能是最有效的,因为您可以在单个查询中完成操作,并且可能只需要读取索引的三行即可。
您可以先在表中找出结果数,然后执行LIMIT <results-3> ,3
只需将其翻转回原始顺序就可以了吗?
SELECT * FROM (SELECT * FROM SOMETABLE ORDER BY ID DESC LIMIT 3) AS T ORDER BY ID;
Select *
FROM (SELECT * FROM yourTABLE ORDER BY ID DESC LIMIT 0,3) as TempTable ORDER BY ID
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.