節の次のOFFSET
部分を使用できます。LIMIT
LIMIT 2 OFFSET 2;
これにより、指定されたオフセットの後 (この場合は 2 行目以降) から始まる結果を制限できます。
UPDATE (動的クエリ?)
select/offset を動的にするには、その部分を PHP で処理する必要があります。レコードを引っ張ってきて、それらで何かをして、次のセットを引っ張っていると思いますか? これが正しければ、実行した反復回数のカウンターを保持できます。
$offsetCounter = 0;
// start your loop, based on whatever you need (for, while, etc.)
$limit = 'LIMIT 2 OFFSET ' . (2 * $offsetCounter++);
// append `$limit` to the end of your query
$query = 'SELECT ID, value FROM yourTable ORDER BY value DESC ' . $limit;
UPDATE #2 (動的クエリ、なしOFFSET
)または少なくともカウンターを使用して実装することは
できませんが、取得した最後のレコードの ID を使用できる場合は、それを句に追加できます (並べ替えもお勧めしますその場合は ID フィールドによっても)。OFFSET
WHERE
次のようなものが機能するはずです(必要に応じて、準備済みステートメントを使用するように更新してください):
$lastIdSelected = 0;
// start your loop
$query = 'SELECT ID, value FROM yourTable';
$query .= (($lastIdSelected != 0) ? ' WHERE id > ' . $lastIdSelected : '');
$query .= ' ORDER BY value DESC, id ASC LIMIT 2';
// execute query, do your work, etc.
// on your last record, do:
$lastIdSelected = $row['ID'];
もちろん、これもOFFSET
変数を使用した最初の更新の形式に従います。これを変更して、最後の ID を格納するために一時変数を使用しないようにすることもできますが、どちらの方法でも同じ量の作業になる可能性があります。