0

私のmysqlテーブルには、他のフィールドとともに、UNIXタイムスタンプ(13076829212など)を格納するタイムスタンプフィールドがあります。タイムスタンプ順に降順で新しく追加された行をフェッチする(最新のフェッチ)ajaxリクエストを作成したいので、最後の行番号を送信して次のようなクエリを実行します

select id, name from tablename order by timestamp desc limit 30, 125273733849448

フェッチされた最後の行番号から始まる最新のシーケンスのすべての行をフェッチしたい。

上記のクエリが実行しているのは、ランダムレコードをフェッチすることです。クエリロジックがどこか間違っていることはわかっています。助けてください。ありがとう。

4

1 に答える 1

3

議論の後に更新された答え:

質問をもう少しよく理解したので、次を使用する必要があると思います。

SELECT id, name, timestamp FROM tablename WHERE timestamp > [saved timestamp] ORDER BY timestamp DESC

最初のクエリで、どこ[saved timestamp]が最新のタイムスタンプに置き換えられますか。

最初のクエリでも使用ORDER BY timestamp DESCする場合は、最新のタイムスタンプが常に最初の行にあることがわかるため、簡単に保存できます。


元の答え:

これを正しく理解していれば、30はフェッチした最後の行のIDであり、idは増分しています。次に、これはそれを行う必要があります:

SELECT id, name FROM tablename WHERE id > 30 ORDER BY timestamp DESC
于 2013-02-18T12:34:23.463 に答える