5

これは私のクエリです:

SELECT  @curRow := @curRow + 1 AS row_number,
    myTable.id
FROM    myTable
JOIN    (SELECT @curRow := 0) r

これにより、allのレコードで結果が得られmyTableます。元。

row_number    id
---------- -------
    1         100
    2         101
    3         102
    4         103
    5         104
    6         105
    7         105
    8         106
    9         107
   10         108
   11         109
   12         110
   13         111
   ...

間の行のみを選択する必要がある場合はどうすればよい6 to 10ですか? で選択するの1 to 5は簡単LIMIT 5ですが、その間の行の範囲を選択するのはどうですか?

4

2 に答える 2

7
SELECT  @curRow := @curRow + 1 AS row_number, myTable.id
   FROM myTable LIMIT 6, 5; 

これにより、レコード 6、7、8、9、10 が表示されます

次に、次のような出力が得られます

row_number    id
---------- -------
    6         105
    7         105
    8         106
    9         107
   10         108
于 2013-08-16T11:57:04.230 に答える
4
SELECT  @curRow := @curRow + 1 AS row_number,
    myTable.id
FROM myTable  LIMIT 5 OFFSET 6;

OFFSETは制限付きで使用してください。

LIMIT は、クエリの実行後にどのくらいの行が来るかを決定し、offset は、どのレコードからレコードがフィルター処理されるかを決定します。

offset については、このチュートリアルをお読みください

于 2013-08-16T11:56:58.667 に答える