171

以下のクエリでは:

SELECT column 
FROM table
LIMIT 18 OFFSET 8

出力としていくつの結果が得られ、どこからどこへ行くのでしょうか?

4

4 に答える 4

226

レコード#9からレコード#26までの18の結果が返されます。

からクエリを読み取ることから始めますoffset。最初に8でオフセットします。これは、クエリの最初の8つの結果をスキップすることを意味します。次に、18で制限します。これは、合計18のレコードであるレコード9、10、11、12、13、14、15、16 .... 24、25、26を考慮することを意味します。

これをチェックしてください。

また、公式ドキュメント

于 2012-04-12T07:35:23.483 に答える
74

OFFSETテーブル内の開始カーソルを示すキーワードに他なりません

SELECT column FROM table LIMIT 18 OFFSET 8 -- fetch 18 records, begin with record 9 (OFFSET 8)

同じ結果フォームが表示されます

SELECT column FROM table LIMIT 8, 18

視覚的表現(Rある順序でテーブル内の1つのレコードです)

 OFFSET        LIMIT          rest of the table
 __||__   _______||_______   __||__
/      \ /                \ /
RRRRRRRR RRRRRRRRRRRRRRRRRR RRRR...
         \________________/
                 ||
             your result
于 2015-10-05T06:51:50.177 に答える
4

あなたが8としてcolumn述べたようにあなたは値9から26までの出力を得るでしょうOFFSET

于 2012-04-12T07:36:23.780 に答える
0

オフセットは主に、MySqlSELECTステートメントのページネーションをサポートするために使用されます。最初にクエリが実行され、次にオフセット後のレコードが返されます。

:評価の順序(最初に高いもの)に従って、製品の1ページあたり10件のレビューを表示するとします。次に、以下のクエリを使用して、3ページ目に表示されるレビューを取得できます。

レビューから*を選択します。ここで、productid=評価による注文descLIMIT 10OFFSET20。

于 2022-01-16T05:24:38.757 に答える