使用 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。
假设我有这个 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。