我的列中有以下json数组:
[
{
"day": 1,
"requests": 23
},
{
"day": 2,
"requests": 5
},
{
"day": 2,
"requests": 9
}
]
,我想要日期为1
的行。我已经尝试过用
SELECT * FROM api WHERE usages->'$[*].day' = JSON_ARRAY(1)
但是没有返回结果。
答案 0 :(得分:3)
select usages->'$[*].day' from api
显示它是JSON数组[1,2,2]
。
where usages->'$[*].day' = JSON_ARRAY(1)
试图将[1,2,2]
与[1]
匹配,这是不正确的。
相反,使用JSON_CONTAINS在数组中查找值。
where json_contains(usages->'$[*].day', "1");