簡體   English   中英

MySQL-返回表中的最后3個結果

[英]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

我猜有兩個選擇。

  1. 您可以使用DESC按照相反的順序返回它們,而只需在應用程序代碼中再次顛倒該順序即可。 這可能是最有效的,因為您可以在單個查詢中完成操作,並且可能只需要讀取索引的三行即可。

  2. 您可以先在表中找出結果數,然后執行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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM