线上版本3.4.1
背景:我有两个查询,想将这两个查询合并为一个结果集,然后对该结果集的某个字段进行排序,这两个查询返回的对象是一致的。
语句如下:
match (v:userInfo)-[e:关注]->(n)-[r:发布|点赞|评论]->(p:dynamic)
where p.dynamic.rankTime < 1781652239000
and v.userInfo.userId == 10104583
and p.dynamic.isBlack == 0
and p.dynamic.userId != 10104583 and p.dynamic.visibleType == 1
return p,p.dynamic.rankTime as r
union
match (p:dynamic) where p.dynamic.dynamicId == 92432
return p,p.dynamic.rankTime as r
order by r desc
但是结果结果显示,union 后的match查询直接拼在了union前的match查询后,没有进行整体排序:
("dynamic92434" :dynamic{dynamicId: 92434, isBlack: 0, rankTime: 1697439827000, userId: 113, visibleType: 1}) 1697439827000
("dynamic92435" :dynamic{dynamicId: 92435, isBlack: 0, rankTime: 1697439966000, userId: 113, visibleType: 1}) 1697439966000
("dynamic92437" :dynamic{dynamicId: 92437, isBlack: 0, rankTime: 1697440114000, userId: 113, visibleType: 1}) 1697440114000
("dynamic92438" :dynamic{dynamicId: 92438, isBlack: 0, rankTime: 1697440299000, userId: 113, visibleType: 1}) 1697440299000
("dynamic92439" :dynamic{dynamicId: 92439, isBlack: 0, rankTime: 1697440513000, userId: 113, visibleType: 1}) 1697440513000
("dynamic92441" :dynamic{dynamicId: 92441, isBlack: 0, rankTime: 1697440674000, userId: 113, visibleType: 1}) 1697440674000
("dynamic92442" :dynamic{dynamicId: 92442, isBlack: 0, rankTime: 1697440831000, userId: 113, visibleType: 1}) 1697440831000
("dynamic92432" :dynamic{dynamicId: 92432, isBlack: 0, rankTime: 1697439677000, userId: 103, visibleType: 1}) 1697439677000
如上所示,id 为dynamic92432的这条数据的rankTime 跟前面的数据没有作为整个的结果集排序。
想问下各位大佬是为什么?