Arrays PostgreSQL筛选器和按数组排序
我有一个表,其中包含我想要匹配的数组。通过使用Arrays PostgreSQL筛选器和按数组排序,arrays,postgresql,sql-order-by,Arrays,Postgresql,Sql Order By,我有一个表,其中包含我想要匹配的数组。通过使用和&运算符进行匹配: SELECT * FROM table WHERE data && ARRAY['foo','bar']; id | data ---+---------- 1 | {foo} 2 | {bar} 6 | {bar,foo} 我现在想做的下一件事,也是按照它们在该数组中的顺序对它们进行排序,比如: SELECT * FROM table WHERE data && ARRAY['foo',
和&
运算符进行匹配:
SELECT * FROM table WHERE data && ARRAY['foo','bar'];
id | data
---+----------
1 | {foo}
2 | {bar}
6 | {bar,foo}
我现在想做的下一件事,也是按照它们在该数组中的顺序对它们进行排序,比如:
SELECT * FROM table WHERE data && ARRAY['foo','bar'] ORDER BY data && ARRAY['foo','bar'];
id | data
---+----------
1 | {foo}
6 | {bar,foo}
2 | {bar}
这可能吗?这可能不是最好的模式,但应该可以工作 选择。。。 按数据和数组['bar'],数据和数组['foo']排序 或者
按'bar'排序=任何(数据)描述,'foo'排序=任何(数据)描述 可能类似于
按位置排序('foo'在数组中)到字符串(数据,,)),位置('bar'在数组中)到字符串(数据,,)
@Patrickdata
是一个TEXT[]
列。@HannoBinder看起来像是一个解决方案,但如果我不知道要比较的数组的长度该怎么办呢。在我的例子中,我首先从另一列/表中选择该数据。@Patrick我的错误col
应该是data
,我更新了我的问题。“我首先从另一列/表中选择该数据”--你确定数组是存储数据的正确方法吗?似乎不然,加入就可以满足你的需要。