現在選択されている行を参照して、mysql データベースから次の行と前の行を選択する方法を知りたいと思っていました。
SOでこの質問を見つけましたMySQLで次/前のレコードを取得する方法は? ただし、この場合、参照からの上位および下位の ID に基づいて選択が行われます。ID の代わりに以前または後のタイムスタンプを使用したいと思います。
現在選択されている行を参照して、mysql データベースから次の行と前の行を選択する方法を知りたいと思っていました。
SOでこの質問を見つけましたMySQLで次/前のレコードを取得する方法は? ただし、この場合、参照からの上位および下位の ID に基づいて選択が行われます。ID の代わりに以前または後のタイムスタンプを使用したいと思います。
サブクエリを使用する理由はありません。
次:
SELECT * FROM `my_table`
WHERE `the_timestamp` > 123456
ORDER BY `the_timestamp` ASC
LIMIT 1
前:
SELECT * FROM `my_table`
WHERE `the_timestamp` < 123456
ORDER BY `the_timestamp` DESC
LIMIT 1
リンク先の記事に基づいて、次を使用できます。
SELECT *
FROM `my_table`
WHERE `the_timestamp` = (
SELECT MIN(`the_timestamp`)
FROM `my_table`
WHERE `the_timestamp` > 1373493634
);
読みやすいようにフォーマットされています。使用したタイムスタンプ (1373493634) を、次のレコードを検索するタイムスタンプに置き換えます。