我目前正在尝试从表中获取下一个或前一个n行,下一个50为了参数的缘故。
我会知道一行,可能是数据中的任何位置,我想要根据时间戳列获得下一个50或前50个。问题是timestamp列不一定按顺序排列(尽管可能会有),因此数据中的下一行可能有错误的时间戳。
我认为最好的方法是创建一个临时表,丢弃给定行之前或之后的所有时间戳(取决于搜索上一个或下一个50),按时间戳排序,然后选择下一个/前50行?我不熟悉SQL基础知识。
提前致谢。
答案 0 :(得分:4)
SELECT *
FROM mytable m
WHERE (ts, id) <
(
SELECT ts, id
FROM mytable mi
WHERE mi.id = :myid
)
ORDER BY
ts DESC, id DESC
LIMIT 50