计算数组SQL中json的出现次数
在我的表中,我有一列,其中我将JSON数组保存为字符串,如下所示:计算数组SQL中json的出现次数,sql,json,postgresql,Sql,Json,Postgresql,在我的表中,我有一列,其中我将JSON数组保存为字符串,如下所示: [ { "id":0, "stops":[ { "Id":0, "field1":"data1", "field2":"data2" } ], "time":"01:00:00" }, { "id":2, "stops":[ { "Id":0, "field1":"data1",
[
{
"id":0,
"stops":[
{
"Id":0,
"field1":"data1",
"field2":"data2"
}
],
"time":"01:00:00"
},
{
"id":2,
"stops":[
{
"Id":0,
"field1":"data1",
"field2":"data2"
}
],
"time":"01:00:00"
},
]
json_array_elements( cast(your_table.column_name as json))->'Stops'
我想计算这个数组中JSON的数量。数据库位于PostgreSQL 9.6.1中。您可以使用json\u array\u length()函数进行计数,但如果您的列是文本类型,则需要将该列强制转换为json类型,如下所示:
json_array_length(cast(your_table.column_name as json))
此外,如果您需要访问“stops”字段,可以使用json\u array\u elements()如下操作:
[
{
"id":0,
"stops":[
{
"Id":0,
"field1":"data1",
"field2":"data2"
}
],
"time":"01:00:00"
},
{
"id":2,
"stops":[
{
"Id":0,
"field1":"data1",
"field2":"data2"
}
],
"time":"01:00:00"
},
]
json_array_elements( cast(your_table.column_name as json))->'Stops'
要进一步访问,如“停止”中的字段,您只需再次使用相同的功能:
json_array_elements( (json_array_elements( cast(your_table.column_name as json)))->'Stops')->'field1'
希望我能提供帮助。在您的示例中,预期输出是2还是4?哪个数据库?(Mysql、sql server等)对不起,数据库在PostgreSQL 9.6.1中,本例中的输出为2。
json\u array\u length()
?