查询带有MySQL对象数组的JSON列

时间:2018-09-01 16:46:17

标签: mysql json

我的列中有以下json数组:

[  
   {  
      "day": 1,
      "requests": 23
   },
   {  
      "day": 2,
      "requests": 5
   },
   {  
      "day": 2,
      "requests": 9
   }
]

,我想要日期为1的行。我已经尝试过用

SELECT * FROM api WHERE usages->'$[*].day' = JSON_ARRAY(1)

但是没有返回结果。

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");