たとえばselect * from table limit 0,5
、最大で 5 行を返す
か、正確に 5 行を検索する必要があり、row_count が 5 に等しくない場合、空の結果セットを返しますか?
クエリselect * from table limit 5
が
http://dev.mysql.com/doc/refman/5.1/en/select.html
「LIMIT 句を使用して、SELECT ステートメントによって返される行数を制限できます。LIMIT は 1 つまたは 2 つの数値引数を取り、両方とも非負の整数定数でなければなりません (準備されたステートメントを使用する場合を除く)。2 つの引数を使用すると、最初の引数は返す最初の行のオフセットを指定し、2 番目は返す行の最大数を指定します。」
したがって、質問に直接答えるには、最大で5 行が返されます。
クエリSELECT * FROM table LIMIT 0,5
は、最初のレコードから始まる 5 つのレコードを返します。
クエリSELECT * FROM table LIMIT 5
でも、上記のクエリと同じ結果が得られます。
そのテーブルのレコードが 5 つ未満の場合、失敗することはありませんが、そこにあるすべてのレコードが返されます。
SELECT * FROM table LIMIT 6,5
インデックスが 0 から始まるため、クエリはレコード 7、8、9、10、11 を返します。
制限は制限であるため、それ以上の行は返されません。それはより少なく返すことができます。
クエリ "select * from table limit 0,5" では、0 は返される最小レコードを指定しません。OFFSET を指定します。したがって、0 を指定すると、"select * from table" というクエリが 10 件のレコードを返す場合、"limit 0,5" は最初の 5 件を返します。"limit 5,5" を使用すると、最後の 5 件のレコードを返します。
レコードが 2 つしかない場合は、2 つのレコードが返されます。結果がなくてもエラーは返されません。LIMIT は上限です。最小値は、0 レコードであってもかまいません。
「select * from table limit 5」は「select * from table limit 0,5」と同じです