文件列表排序问题

来源:5-9 支持不同的排序规则

coolpi21

2024-04-25

在本章中,发现两个问题。
第一个问题是升序和降序的查询条件在课程的语句是

sql`("file"."created_at", "file"."id") < (${new Date(cursor.createdAt).toISOString()}, ${cursor.id})`

如果是降序排列,那是没有问题的。但如果是升序,这则查询条件在 fetchNextPage 时就会把符合条件的文件都会查询到,而后 append 到了数据集中,这与实际情形不符,比如我有3个文件,切换升序后,变为了5个文件,如图所示。

第二个问题是我依据 order 条件做了区分,在升序的时候做了大于判断条件,但查询时会多出一条数据。查看了字段时间格式因为本地是东8区与数据库UTC时间不符,我不清楚是不是因为这样的情况产生的,所以想问下老师是怎样处理的?

图片描述

图片描述

写回答

1回答

Jokcy

2024-04-25

没有很理解你的问题,符合条件的文件都查询到不是期望的么?建议把期望的结果和实际的结果数据展示一下,不然我不是很理解你说的情况。

0
4
coolpi21
回复
Jokcy
回复 Jokcy:谢谢老师。我是通过 orderBy 字段利用操作符的不同做了判断,比如升序的时候 > 判断查询,降序的时候 < 判断查询。然而我现在碰到的问题主要是奇怪的第二条,当 fetchNextPage 时同样的 ISO 时间格式(如图2),我利用 ```sql`("file"."created_at", "file"."id") > (${new Date(cursor.createdAt).toISOString()}, ${cursor.id})```` 判断时,是能查到数据的(理论上应该是没有数据的),这显然很奇怪,我有点丈二和尚摸不着头脑!
2024-04-28
共4条回复

前端全栈进阶 Nextjs打造跨框架SaaS应用

从构思到部署 ,助你完成从开发者到服务提供者的蜕变

304 学习 · 66 问题

查看课程