按日期分页顺序会忽略一些具有相同日期的数据

问题描述 投票:0回答:1

我有多行未排序的数据(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'
,某些数据可能会重复。

我该如何处理?

sql pagination sql-order-by
1个回答
0
投票

不要仅依赖 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'

的数据
© www.soinside.com 2019 - 2024. All rights reserved.