2015-07-10 47 views
0

假設我有一個PostgreSQL的表下面的模式:排序嵌套的JSON數組的長度

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

data存儲在一個JSON結構。有可能通過array_of_values的長度來排序表中的元素嗎?

+0

當然是!看看'json_array_length(json)'函數:http://www.postgresql.org/docs/9.4/static/functions-json.html – Eggplant

回答

0

使用json_array_length()jsonb_array_length()Eggplant commented。假設jsonb

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

順便說一句,你的JSON值的語法應爲:

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