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