2012-01-10 22 views
13

1000レコード以上のテーブルから10レコードしか取得できないのはなぜですか?私はrowid、名前、コストのテストテーブルを持っています。mysqlのテーブルからNレコードを選択する方法

select name, cost from test; 

ここでは、最初の10行だけを選択したいと思いますが、ROWIDを選択しません。あなたが必要とするレコード数が続くLIMIT使用することができます最初の10件のレコードを選択する

答えて

23

:特定の場所から10件のレコードを選択するには

SELECT name, cost FROM test LIMIT 10 

を、あなたはLIMIT 10を使用することができ、100

SELECT name, cost FROM test LIMIT 100, 10 

これはこれは、レコード11-11が表示されます、レコード101-110

SELECT name, cost FROM test LIMIT 10, 100 

が表示されます1

、必ず正しい結果を取得しますあまりにも結果BY必ずORDERを行い、それ以外の場合は返される行はランダムっぽい

かもしれするためにあなたがhttp://php.about.com/od/mysqlcommands/g/Limit_sql.htm

+2

個人的には、一貫性のある繰り返し可能な結果を​​保証するために、私は常にLIMITでORDER BYを使用します。 –

+2

私は2番目の例でエラーがあると思います。私のテストでは、 'LIMIT 10、100'はインデックス11から100レコードを返します。' LIMIT 100、10'はインデックス101から始まる10レコードを返します。 – jatrim

+0

'LIMIT 10'は10レコード未満を返します。私のために答えるので、どうすれば正確に10レコードを選ぶことができますか?私はコマンドラインを使ってこの 'limit'クエリを実行しました。私はこのクエリを7回目に8回実行しました。 – 151291

5

@詳細を読むことができますあなたは持っている必要がありますLIMITを使用すると、同じレコードセットが連続して2回呼び出され、データが変更されていない場合は、同じレコードセットが取得されるため、ORDER BY句が使用されます。だから、

、ような何か:

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

申し訳ありません - mysqlをmssqlとして読んでください。 – adelphus

0

このクエリを、あなたは最初の10件のレコードを取得することができます。

SELECT employee_id、first_name FROM employees LIMIT 10;

関連する問題