使用 SQLite Json 函数我想根据它附近的值检索一个值

Using SQLite Json Functions I want to retrieve a value base on the value near it

假设我有这个 Json,我想检索数组键中名称等于 Chris 的所有年龄值。

{
    "Array": [
        {
            "age": "65",
            "name": "Chris"
        },
        {
            "age": "20",
            "name": "Mark"
        },
        {
            "age": "23",
            "name": "Chris"
        }
    ]
}

Json 出现在我的数据库中的 Json 列中。 据此我想检索一个年龄列,年龄为 65 岁和 23 岁,因为他们都叫克里斯。

使用 json_each() table-valued function to extract all the names and ages from the json array of each row of the table and json_extract() 函数过滤 'Chris' 的行并获取他的年龄:

SELECT json_extract(j.value, '$.name') name, 
       json_extract(j.value, '$.age') age
FROM tablename t JOIN json_each(t.col, "$.Array") j
WHERE json_extract(j.value, '$.name') = 'Chris';

col 更改为 json 列的名称。

参见demo