使用json_extract在JSON数组中的所有对象中查找

时间:2018-08-01 18:35:09

标签: mysql sql sqlite

如何使用json_extract浏览数组中的所有对象?如果您知道密钥,它会起作用,但是我想查看每个对象并找到匹配的对象。

$.features[0].properties.TMPRIV_ID

如何使其正常工作?

$.features[*].properties.TMPRIV_ID

1 个答案:

答案 0 :(得分:1)

您已将此标记为MySQL和Sqlite,所以我将掷硬币并给出Sqlite答案。

基本上,您需要从json_each()行值函数中进行选择,以遍历数组的每个元素,并选择一个where子句来过滤所需的内容(json_extract()所在的位置播放):

sqlite> SELECT value FROM
  json_each('[{"name":"cat","type":"mammal"},{"name":"parrot","type":"bird"},{"name":"dog","type":"mammal"}]')
  WHERE json_extract(value, '$.type') = 'mammal';
value                         
------------------------------
{"name":"cat","type":"mammal"}
{"name":"dog","type":"mammal"}

如果希望将结果作为JSON数组而不是一组行,请使用json_group_array()聚合函数:SELECT json_group_array(value) FROM ...