MySQLは最初の10件の結果をスキップします


102

MySQLでSELECTクエリの最初の10件の結果をスキップする方法はありますか?LIMITのように動作させたいのですが。


7
ここでのすべての回答には、ORDER BY句がありません。SQLテーブルにはデフォルトの順序がなく、明示的なORDER BYがないと、スキップする最初の10件の結果を通知する方法はありません
fthiella

回答:


125

2つのパラメーターでLIMITを使用します。たとえば、結果11〜60(結果1が最初の行)を返すには、次のコマンドを使用します。

SELECT * FROM foo LIMIT 10, 50

すべての結果を返すソリューションについては、トーマスの回答を参照してください。


あなたが言及した数の間にいくつかの行が削除された場合はどうなりますか?
アレックス



33

マニュアルから:

特定のオフセットから結果セットの最後までのすべての行を取得するには、2番目のパラメーターに大きな数を使用できます。次のステートメントは、96行目から最後のすべての行を取得します。

SELECT * FROM tbl LIMIT 95,18446744073709551615;

当然、に置き換える必要95があり10ます。ちなみに、彼らが使用する数は2 ^ 64-1です。


5

LIMITを使用すると、任意の数の行をスキップできます。2つのパラメーターがあり、その1 はスキップする行数です。


これにより、「オフセットとは何か」の@Colに感謝します。榴散弾
OMザエタニティ

2
select * from table where id not in (select id from table limit 10)

idテーブルのどこにキーがあるか。


これは、オフセット付きの制限が常に望ましいとは限らない順序引数を必要とするインパラおよびその他のデータベースの場合、便利で高速です。
KarthikS 2017

-5

テーブルにIDによる順序付けがある場合、次のように簡単に行うことができます。

select * from table where id > 10
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.