gpt4 book ai didi

sql - 如何在 Postgres 中获取行以保存请求中的初始顺序?

转载 作者:行者123 更新时间:2023-11-29 12:07:10 24 4
gpt4 key购买 nike

我有一个 id 数组:

[0, 1, 2, 3, 4]

我想从 Postgres 表中获取行,这些行在我的数组中保存初始顺序。

要获取这些行,我使用 select * from "table_name"WHERE id IN (ids)。在此查询之后,Postgres 可以按此顺序返回行

[4, 2, 1, 0, 5]

我知道我可以自己将顺序更改为首字母,但是否有办法使用另一个查询来解决问题?

最佳答案

加入非嵌套数组而不是使用 IN:

select t.*
from table_name t
join unnest(array[0,1,2,3,4]) with ordinality as a(id, idx) on a.id = t.id
order by a.idx;

选项with ordinality 将返回数组中每个元素的索引。然后可以使用该索引对结果进行排序。

关于sql - 如何在 Postgres 中获取行以保存请求中的初始顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57588166/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com