在 PostgreSQL JOIN 中使用数组类型保留排序:综合解决方案
给定的数据库架构由两个表组成:items 和 some_chosen_data_in_order。当前的任务是从 items 表中检索 some_chosen_data_in_order 表中特定行的数据,同时保留数组类型字段中元素的顺序。
无效尝试:
您最初尝试使用 JOIN 和子查询未能维持数组类型字段中的元素顺序。这些方法不能始终保留 id_items 数组中元素出现的顺序。
有效的解决方案:
要解决此问题,请采用涉及以下的替代方法:取消嵌套()函数:
SELECT t.* FROM unnest(ARRAY[1,2,3,2,3,5]) item_id LEFT JOIN items t on t.id=item_id
解释:
此查询利用 unnest() 函数从 item_id 数组中提取单个元素,从而有效地为每个元素创建临时行。随后,我们对 items 表执行 LEFT JOIN 以检索所需的数据,同时保持指定的顺序。
示例:
考虑 some_chosen_data_in_order 表包含一行id_items 为 [1,2,3,2,3,5]。执行上述查询将返回与以下项目相关的数据(按指定顺序):
以上是在 PostgreSQL 中连接表时如何保留数组顺序?的详细内容。更多信息请关注PHP中文网其他相关文章!