我有多行未排序的数据(ID 没有显示任何特定的顺序)。我想按日期降序显示它们(
mdate
列)。我使用此查询加载下一页,其中最小日期是从显示数据的最后一行中提取的(通过 JS)。
select top 100 *
from production
where mdate < '2023/10/03'
order by mdate desc
当我使用
mdate < '2023/10/03'
时,显然如果有2023/10/03之前未显示的剩余数据,将被忽略,如果我使用mdate <= '2023/10/03'
,某些数据可能会重复。
我该如何处理?
不要仅依赖 mdate 列。还可以与 ID 列进行交互,并通过 mdate 和 ID 的组合来完成您的逻辑:
select top 100 * from production where
(mdate < '2023/10/03'
or
/* Remaining data from 2023/10/03 */
(mdate='2023/10/03'
and
/* sample ID to be extracted from last displayed data as well as did for max date */
id<'21344')
)
order by mdate desc,id desc"
在上面的逻辑中,我添加了
id desc
来表示订单,我还尝试通过与最大 ID 进行比较来提取 2023/10/03 中的剩余数据(例如从之前显示的数据中提取的 21344),并将这些数据与任何其他数据组合起来具有 mdate < '2023/10/03' 的数据