2011-02-23 101 views
0

有沒有辦法從數據庫示例中獲取確切數量的條目。例如,假設您有一張表格,其中只有一個ID,並且列的總訪問次數爲。假設你想抓取20個參賽作品並按訪問次數排序。你會怎麼做呢?我知道如何對整個桌子進行排序,但希望能夠獲得排名前20的總訪問量,然後對它們進行排序。謝謝從表格中獲取一定數量的數據庫條目

O和現在我正在使用sqlite,但我知道在將來我也會使用mysql。由於使用限制,以獲得前20名

回答

0

試一下:

SELECT * FROM TableName ORDER BY TotalVisits LIMIT 20 
0

,如果你想添加另外一種類型,訪問列

等之後添加:

SELECT * FROM mytable ORDER BY visits DESC 

/*here put another order by field like date */ 
, date 

LIMIT 20 
0

使用順序 - 限制條款

SELECT * FROM table ORDER BY field [ASC|DESC] LIMIT 20 OFFSET [offset value] 
0

您需要使用LIMIT,但如果您打算根據單獨的條件重新排序前20位,則需要將整個事件放入子查詢中。所以

SELECT * from <table> order by <total visits column> LIMIT 20 

將讓你的前20名,但隨後這一結果中進行排序,你會做這樣的事情

SELECT * from 
    (SELECT * from <table> ORDER BY <total visits column> LIMIT 20) 
    ORDER BY <other criteria> 
0

LIMIT子句可以被用來限制由SELECT返回的行數聲明。 LIMIT需要一個或兩個數字參數,它們都必須是非負整數常量,但以下例外:

有兩個參數,第一個參數指定要返回的第一行的偏移量,第二個參數指定最大行數回來。的初始行的偏移量爲0(未1):

SELECT * FROM tbl LIMIT 5,10; # Retrieve rows 6-15 

從某一檢索所有的行偏移到結果集的結尾,就可以使用一些大量用於第二參數。此語句檢索從第96行中的所有行到最後:

SELECT * FROM tbl LIMIT 95,18446744073709551615; 

有了一個說法,該值指定的行數,從結果集的開頭返回:

SELECT * FROM tbl LIMIT 5;  # Retrieve first 5 rows 

在其他字,LIMIT row_count相當於LIMIT 0,row_count。

全部:http://dev.mysql.com/doc/refman/5.5/en/select.html更好地探討mysql,然而sqlite的工作方式相同:http://www.sqlite.org/lang_select.html