ユーザーが送信した情報をカタログにページ分割しようとしています。最初は次のようなものがありました:/?page = 3&count = 20&sort = date
$floor = ($page-1)*$count;
$ceiling = $count;
SELECT * FROM catalog ORDER BY date ASC LIMIT $floor, $ceiling
私が読んだように、これはすべての結果をカウントし、制限(床+天井)で停止しないため、悪いです。
今、私はページの最後のアイテムに関してページングすることによってそれをより速くしようとしています
/?last_date = 2012&count = 20&sort = date
$ceiling = $count;
SELECT * FROM catalog WHERE date>$last_date ORDER BY date ASC LIMIT $ceiling
しかし、これは正しく機能しませんか?一部の日付は同じになります。議論のために、より正確なタイムスタンプを使用できないと仮定しましょう。たとえば、価格で並べ替えると小数点以下2桁までしか表示されず、間違いなく重複します。
この改善を機能させるためにできることはありますか、それとも以前のクエリに戻す必要がありますか?