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'在数组中)到字符串(数据,,)
@Patrick
data
是一个
TEXT[]
列。@HannoBinder看起来像是一个解决方案,但如果我不知道要比较的数组的长度该怎么办呢。在我的例子中,我首先从另一列/表中选择该数据。@Patrick我的错误
col
应该是
data
,我更新了我的问题。“我首先从另一列/表中选择该数据”--你确定数组是存储数据的正确方法吗?似乎不然,加入就可以满足你的需要。