mySQLから数えて20個のアイテムが出力されています。mySQL LIstに追加
ユーザーはリストに入るアイテムを追加して削除し、アイテムのIDが連続しないようにします。それらは5,10,12,13,14,27,28,31,38,40であるかもしれない。リストは20項目に限定されている。
SELECT * FROM table WHERE fields = vars ORDER BY id DESC LIMIT 0,10
このリストが画面に表示されている間、ユーザーはアイテムの追加と削除を続けます。ここの例の最後のIDの値は40です。
これらのアイテムのいくつかは削除され、新しいアイテムが追加されます。
最後の既知のIDからこのクエリを実行するにはどうすればよいですか。 WHERE ID> 40を追加しますか?LIMIT 0,10節の後にWHERE句を置くことはできますか?ここ
SELECT * FROM table WHERE fields = vars ORDER BY id DESC LIMIT 0,10 WHERE id > $lastid
主なポイントは、私はすでに示した項目を表示したくない、との項目はそう間違った結果をもたらす可能性があり1,10をやって削除された場合、私は知らないです。最後に表示された項目の直後に次の10個の結果が必要です。
削除したアイテムについて心配するべきではないと思います。項目の変更に基づいて項目を表示するかどうかを制御することは、本当の苦痛になります。 IDの順番を守り、ページごとにいくつかの要素を修正するだけです。次に、 'LIMIT'節でこれらの値を制御するだけです。 'LIMIT 1,10 'で始まるページの要素数を' 10 'とすると、次のページは1 + 10,10(LIMIT 11,10)になります。すべてのページ設定はこれで動作します。何が表示されるべきかを制御するには、クッキーやその他のテーブルのようなシステムに不要な複雑さを加えることが必要です –
そしてリストを見ているすべてのユーザーにそれをチェックするための賢明なロジックと、 。 –
ほとんどすべてのシステムのデフォルトの動作であることはわかっていても、私は答えとして追加しませんでした。 –