相关疑难解决方法(0)

比较数组是否相等,忽略元素的顺序

我有一个包含4个数组列的表..结果如下:

ids       signed_ids   new_ids   new_ids_signed
{1,2,3} | {2,1,3}    | {4,5,6} | {6,5,4}
Run Code Online (Sandbox Code Playgroud)

无论如何要通过忽略元素的顺序来比较ids并使signed_ids它们相等?

arrays postgresql

19
推荐指数
3
解决办法
9733
查看次数

如何在 PostgreSQL 中为数组的元素创建索引?

使用此架构:

create table object (
   obj_id      serial      primary key,
   name        varchar(80) not null unique,
   description text,
   tag_arr     int[]
);

create table tag (
   tag_id      serial      primary key,
   label       varchar(20) not null unique
);
Run Code Online (Sandbox Code Playgroud)

一个对象可以附加任意数量的标签。object X tag我希望将tag_ids保留在一个数组中,而不是一个表,以便可以轻松地使用对象记录获取它们。

如何创建索引object以便每个元素tar_arr都是一个索引?

也就是说,有没有更好的方法来解决这个问题?

讨论

这可以通过以下方式实现:

create table obj_x_tag(
   obj_id    references object,
   tag_id    references tag,
   constraint obj_x_tag_pk primary key( obj_id, tag_id )
);

select obj_id, name, description, array_agg( tag_id )
from object o
join obj_x_tag x using( obj_id …
Run Code Online (Sandbox Code Playgroud)

sql arrays postgresql indexing

3
推荐指数
1
解决办法
4997
查看次数

标签 统计

arrays ×2

postgresql ×2

indexing ×1

sql ×1