我们正在使用Postgres DB,因为我们有一个表包含JSON类型的列,格式如下所示
{
"name" : "XXX",
"id" : "123",
"course" :[
{
"name" : "java",
"tutor":"YYYY"
},
{
"name" : "python",
"tutor":"ZZZZ"
}
]
}
{
"name" : "XXX",
"id" : "123",
"course" :[
{
"name" : "java",
"tutor":"YYYY"
},
{
"name" : "python",
"tutor":"ZZZZ"
}
]
}
就像这样,例如我们有两行,而在json列中,我们每个都有上面的
我想要Postgre查询,它将检查课程数组中的元素数量,如果它不止一个,那么只返回该行
我没有得到如何计算json键内的数组元素
可以任何建议
答案 0 :(得分:0)
why not just json_array_length
?...例如:
f=# with c(j) as (values('{
"name" : "XXX",
"id" : "123",
"course" :[
{
"name" : "java",
"tutor":"YYYY"
},
{
"name" : "python",
"tutor":"ZZZZ"
}
]
}'::json))
select json_array_length(j->'course') from c;
json_array_length
-------------------
2
(1 row)
如此喜欢
select * from table_name where json_array_length(j->'course') > 1