MySQLのLimitはOffsetのみの値を受け付けない

Zend FrameworkでMySQLを使っていて、LimitがNullだとOffsetが効かない症状が出たので調べてみたら、MySQLがそうなんですね。
MySQLのリファレンスを見ると、載っています。

LIMIT 条項は SELECT ステートメントに返された行数を制限するのに利用する事ができます。LIMIT は、負数以外の整数定数でなければいけない、1つか2つの数値引数を取ります。(準備されたステートメントを利用している時以外)
その2つの引数のうち、最初の物は返される最初の行のオフセットを指定し、2つめの物は返される行の最高数を指定します。冒頭の行のオフセットは0です。(1ではありません)
SELECT * FROM tbl LIMIT 5,10; # Retrieve rows 6-15
全ての行を一定のオフセットから結果セットの最後まで検索するには、2つめのパラメータに大きい数字を利用する事ができます。このステートメントは96番目の行から最後まで全ての行を検索します。
SELECT * FROM tbl LIMIT 95,18446744073709551615;
1つの引数で、その値は結果セットの最初から返される行数を指定します。
SELECT * FROM tbl LIMIT 5; # Retrieve first 5 rows
言い換えると、LIMIT row_count は LIMIT 0, row_count と同等だという事になります。


言い換えると、LIMIT row_count は LIMIT 0, row_count と同等だという事になります。

ふむ。一工夫いる箇所ですね。これはMySQLだけの症状なんでしょうか?

タイトルとURLをコピーしました