2010-03-07 166 views
3

我有如下表(分):SQL選擇前10條記錄

recno uid uname points 
    ============================ 
    1  a  abc  10 
    2  b  bac  8 
    3  c  cvb  12 
    4  d  aty  13 
    5  f  cyu  9 
    ------------------------- 
    -------------------------- 

我需要的是僅顯示由點(DESC)和五個記錄的每一頁上的前十名記錄用。我有以下的SQL語句:

select * from points where uid in(a,c) order by uid LIMIT 1, 5 

感謝

+1

我不明白... 是你想要的東西: SELECT * FROM點順序通過點數desct極限5 ? – Aif 2010-03-07 11:31:21

回答

5

第一頁:

SELECT * FROM points p ORDER BY points DESC LIMIT 0, 5 

第二頁:

SELECT * FROM points p ORDER BY points DESC LIMIT 5, 5 
0

您不能執行一個SQL查詢返回的頁面定數,你就必須執行某種分頁模塊或任何等價物的存在是針對您所在的場景,並且爲獲取一個,然後LIMIT 5, 5爲另一個。

有了這麼少的記錄,它不會是一個問題,但在生產規模環境中選擇所有記錄,然後將這些結果分解成頁面將會產生大量不必要的開銷,這是很好的做法,只需選擇所需的數據。