按嵌套JSON数组的长度排序

时间:2015-07-10 08:17:50

标签: json postgresql sorting

假设我有一个PostgreSQL表,其中包含以下架构:

id: 1,
attribute_a: 'value'
attribute_b: 'value'
data: { attribute_c: 'value', array_of_values: [1,2,3] }

data存储在JSON结构中的位置。是否可以通过array_of_values length命令表中的元素?

1 个答案:

答案 0 :(得分:2)

使用json_array_length()jsonb_array_length(),例如Eggplant commented。假设jsonb

SELECT *
FROM   tbl
ORDER  BY jsonb_array_length(data->'array_of_values')

BTW,您的JSON值的语法应为:

{"attribute_c": "value", "array_of_values": [1, 2, 3]}