当前位置: 首页 > 知识库问答 >
问题:

如何返回子查询结果的具体顺序

袁轶
2023-03-14

我有下表,其中包含PostID和到rootPostId的映射

CREATE TABLE "PostMap" (
    "postId" BIGINT,
    "rootPostId" BIGINT );


INSERT INTO "PostMap" ("postId","rootPostId") VALUES (1,1);
INSERT INTO "PostMap" ("postId","rootPostId") VALUES (2,1);
INSERT INTO "PostMap" ("postId","rootPostId") VALUES (3,3);
INSERT INTO "PostMap" ("postId","rootPostId") VALUES (4,1);

postId,rootPostId
1,1
2,1
3,3
4,1

我有以下疑问:

SELECT "postId"
FROM "PostMap" 
WHERE "rootPostId" = (
    SELECT "rootPostId"
    FROM "PostMap"
    WHERE "postId" = 2
    )

返回结果:

postId
1,
2,
4

我希望返回以下内容,以便返回的第一个postId是传递到查询中的相应postId(postId=2),如下所示。

返回所需结果:

postId
2,
1,
4

共有1个答案

公羊伟志
2023-03-14

您可以添加:

order by (postid = 2) desc

这在Postgres和MySQL中都可以使用。

 类似资料:
  • 问题内容: 是否可以以预定顺序进行声明,即 选择ID 7,2,5,9和8 并以该顺序返回它们 ,仅基于ID字段? 这两个语句以相同顺序返回它们: 问题答案: 我不认为这是可能的,但是在这里找到了一个博客条目,似乎可以满足您的需求: 将给不同的结果 返回给定第二个参数的位置,因此对于上面的第一种情况,7的位置在集合中的位置1,2的位置在2,依此类推-mysql在内部得出类似 然后按的结果排序。

  • 我正在尝试计算配置单元中视图的平均/最小/最大记录计数 并试图实现如下内容: 但我收到一条错误消息: avg=5 min=4 max=6

  • 我正在玩mongob,并将一些测试数据{name:"david"}输入到“用户”集合中。我通过键入mongoshell验证了数据在MongoDB中 结果: 在 node.js 脚本中,使用以下代码: 不返回任何结果 我没有发现任何错误,也没有错误。请告知

  • null 这似乎意味着我不像使用简单的“From customer”查询那样获取customer实体的实例。如果是这种情况,如何返回客户实体?如果没有,那我做错了什么?

  • 对于redis查询返回结果顺序的判断,我有些怀疑,特别是对于hgetall查询 例如,我将一些数据按其枚举的顺序放入数据库: 不带任何其他参数的“keys key:*”命令是否总是按照数据在数据库中出现的顺序返回该数据,还是会尝试以任何方式对数据进行排序?

  • 我在使用MongoDB查询时遇到问题。每当我尝试通过ID或任何其他字段查找时,我总是得到零结果返回。我也很难使用“like”操作符。 我想以不区分大小写的方式查询书名。而且我知道你可以在MongoDB中这样做: 我试着装腔作势地做,但我不能让它起作用: 我看到控制台上打印出以下行:{“title”:{“$regex”:“/^harr.*/I”}} 我也尝试过一个文档,但也不成功: 结果却是零。 这