首页 > 解决方案 > 根据 ARRAY 元素对结果进行排序?

问题描述

我有以下查询:

 SELECT id,word FROM map
 WHERE id::integer in (SELECT unnest(ary) FROM abc WHERE id = 11)

问题是结果是随机顺序的。

我想要的是按照 ARRAY "ary" 的内容定义的顺序出现的结果

我怎么做 ?

标签: arrayspostgresqlsql-order-by

解决方案


我会先取消嵌套,并按照给定的顺序,加入id列中的其他表:

SELECT
     id,
     word
FROM (
     SELECT
         unnest(ary) as id
     FROM
         abc
     WHERE
         id = 11
) a JOIN map
USING
     (id)

推荐阅读