簡體   English   中英

MySQL-獲取前n條記錄並通過分頁按特定列排序

[英]MySQL - Getting Top n records and ordering by a specific column with pagination

我有一個問題,要從數據庫中獲取前n條記錄,並按特定的列對其進行排序並對其進行分頁。

例如,我要從電影表中獲取前100部電影,並按名稱順序排列這前100條記錄,並每頁顯示10條記錄。

但是,這是行不通的。

SELECT name FROM movies ORDER BY id DESC, name DESC, LIMIT 0,10

我在這里很困惑。 為了分頁,我必須以這種方式使用LIMIT;

LIMIT 0,10 = FIRST PAGE
LIMIT 10,20 = SECOND PAGE

等等。

為了獲得第一條記錄,我使用ORDER BY id DESC但是當我想從Z到A列出ORDER BY id DESC, name DESC並不能解決問題。

換句話說,我要做的是從10.000個中獲取第一個(最新)記錄,並按名稱(ASC或DESC)和/或按視圖(ASC或DESC)對這100條記錄進行排序。

我希望我足夠清楚地解釋我的問題。

如果您能幫助我解決這一問題,我將非常高興。

order by語句轉移訂單的order by (已更新)

select   name 
from     ( select    * 
           from     movies 
           order by id desc 
           limit 100 ) 
order by name desc 
limit    0,10

它首先使用第一個,如果相等則查找下一個

將您的選擇包裝在另一個選擇中;

SELECT name FROM (SELECT * FROM movies ORDER BY id DESC LIMIT 0,100) ORDER BY name DESC LIMIT 0,10

編輯:更新了限制。

您可以嘗試使用以下名稱中的選擇名稱:(從電影中選擇名稱,按ID Desc限制為0,100)按名稱Desc限制為0,10

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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