PostgreSQL过滤器和按数组排序

时间:2016-03-15 10:41:37

标签: 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','bar'] ORDER BY data && ARRAY['foo','bar'];
id | data
---+----------
 1 | {foo}
 6 | {bar,foo}
 2 | {bar}

这可能吗?

1 个答案:

答案 0 :(得分:0)

这可能不是最佳模式,但应该有效。

选择...... 订购数据&& ARRAY [' bar'],数据&& ARRAY ['富'];

...或

ORDER BY' bar' =任何(数据)desc,' foo' = ANY(数据)desc;