2012-01-10 170 views
13

如何從超過1000條記錄的表中只獲取10條記錄。我有一個測試表,rowid,名稱,成本。如何從mysql表中選擇N條記錄

select name, cost from test; 

這裏我想只選擇前10行而不想選擇rowid。

回答

23

要選擇前十個記錄,你可以使用LIMIT後面的記錄數,您需要:

SELECT name, cost FROM test LIMIT 10 

從一個特定的位置選擇十個記錄,你可以使用LIMIT 10,100

SELECT name, cost FROM test LIMIT 100, 10 

這將顯示的記錄101-110

SELECT name, cost FROM test LIMIT 10, 100 

這將顯示的記錄11-11 1

爲了確保您檢索正確的結果,請確保您的ORDER BY的結果也是如此,否則返回的行可能是隨機的上下的

你可以閱讀更多@http://php.about.com/od/mysqlcommands/g/Limit_sql.htm

+2

就個人而言,我總是使用ORDER BY和LIMIT來保證一致的,可重複的結果。 – 2012-01-10 15:20:33

+2

我相信你的第二個例子有錯誤。在我的測試中,'LIMIT 10,100'返回100條記錄,從索引11開始。'LIMIT 100,10'返回10條以索引101開頭的記錄。 – jatrim 2014-04-03 18:18:18

+0

'LIMIT 10'返回少於10條記錄,所以這是不正確的爲我回答,所以我如何才能精確選擇10條記錄?,而不是更少。我用命令行來執行這個'limit'查詢,我在第7次運行這個查詢8次,我得到了8條記錄,而不是10條記錄。 – 151291 2015-12-17 10:33:38

5

你應該有一個ORDER BY子句當您使用LIMIT時,如果您連續調用兩次並且沒有數據更改,您將獲得相同的記錄集。

所以,做這樣的事情:

select name, cost 
from test 
order by rowid 
limit 10; 
2
SELECT TOP(10) name, cost FROM test; 
+1

道歉 - 將mysql作爲mssql讀取。 – adelphus 2012-01-10 15:19:33

0

這個查詢,你可以得到前10個記錄。

SELECT employee_id,first_name FROM employees LIMIT 10;

相關問題