此代碼可用於從mysql中的表中選擇前10條記錄。我怎樣才能做到這一點,顯示一個有1000條記錄的表中的最後十條記錄。我想以asc順序顯示名稱,但不想改變它。如何從mysql中的表中選擇最後N條記錄
SELECT name, cost FROM test orderby name asc LIMIT 10 ;
此代碼可用於從mysql中的表中選擇前10條記錄。我怎樣才能做到這一點,顯示一個有1000條記錄的表中的最後十條記錄。我想以asc順序顯示名稱,但不想改變它。如何從mysql中的表中選擇最後N條記錄
SELECT name, cost FROM test orderby name asc LIMIT 10 ;
SELECT q.name, q.cost
FROM (SELECT name, cost
FROM test
ORDER BY name DESC LIMIT 10) q
ORDER BY q.name ASC;
SELECT name, cost
FROM (SELECT name, cost FROM test orderby name desc LIMIT 10) as test
ORDER BY name asc;
的LIMIT
子句可以採用兩個參數,這將提供一個偏移:
LIMIT子句可以用於約束的行數由SELECT返回 聲明。 LIMIT採用一個或兩個數字參數 ,它們都必須是非負整數常量(使用 預準備語句時除外)。
使用兩個參數,第一個參數指定要返回的第一行的偏移量,第二個參數指定要返回的最大數量的行數 。初始行的偏移量爲0(不是1):
SELECT * FROM tbl LIMIT 5,10; #檢索行6-15要從某個偏移量直到結果集的末尾檢索所有的 行,可以使用 的一些大數目作爲第二個參數。此聲明 檢索從第96行到最後一行的所有行:
SELECT * FROM tbl LIMIT 95,18446744073709551615;用一個參數 該值指定從 開始返回的行數結果集:
SELECT * FROM tbl LIMIT 5; #檢索前5行
http://dev.mysql.com/doc/refman/5.0/en/select.html
這個所以:
SELECT name, cost FROM test orderby name asc LIMIT 990, 10;
當插入一行並且表現在總共有1,001行時會發生什麼? – 2012-01-10 16:41:04
您可以使用ROW_NUMBER()對於此條款,這將有利於你
選擇頂部「N」* from(選擇ROW_NUMBER()OVER(按Col_Name desc排序)爲RowNo,* from Table_Name)Table_Name
它既可以按名稱排序,也可以按日期插入/唯一標識。 – 2012-01-10 16:36:45
這取決於你的意思是最後的N個記錄 - 按照他們的名字或者編號,日期或者成本或者其他的順序嗎? – Abhay 2012-01-10 16:45:49