请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

文件列表排序问题

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

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

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

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

图片描述

图片描述

正在回答 回答被采纳积分+3

1回答

Jokcy 2024-04-25 17:51:42

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

0 回复 有任何疑惑可以回复我~
  • 提问者 coolpi21 #1
    选择升序排列的时候,最新的文件就会排列在最后一个。那么最新文件的创建时间就做为了查询条件中的 cursor 的判断条件,那么`fetchNextPage` 时就等于查询到了小于最新创建时间的文件,这些找到的文件就会被 append 到数据结果中,与实际情况不符合。(已更新问题图片,图中共3条数据)
    回复 有任何疑惑可以回复我~ 2024-04-25 17:59:01
  • 提问者 coolpi21 #2
    简单来说,按照课程展示的效果会触发 fetchNextPage,所以在升序的排序下会因为查询条件的问题,产生额外的数据。比如3条数据升序后变为了5条,与实际情况不符合。具体如图展示。
    回复 有任何疑惑可以回复我~ 2024-04-26 10:30:37
  • Jokcy 回复 提问者 coolpi21 #3
    好的,我回头试一下,你也可以研究一下如果有发现原因可以分享一下,后续我也可以录制视频进行更新。这块不会block后续的内容,可以先往后面学习
    回复 有任何疑惑可以回复我~ 2024-04-27 22:32:32
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信