我正在使用MariaDB 10.2.8。从密钥" 2"中提取值所需的语法是什么?在下面的JSON中使用JSON_EXTRACT()函数
{
"1":"Windows 10",
"2":"Windows 8",
"3":"Windows 7",
"4":"MAC OS"
}
答案 0 :(得分:2)
选择JSON_EXTRACT(@ json,'$ [1]')
这里$表示JSON文档树。
MySQL参考有更好的例子。但是,在将代码从MySQL粘贴到MariaDB时要小心,因为MariaDB具有基于文本的JSON格式,而不是本机二进制JSON。 https://dev.mysql.com/doc/refman/8.0/en/json.html
答案 1 :(得分:0)
我也发现有关该主题的文档非常有限,示例似乎仅显示了如何导航数组而不是对象。来自其他数据库的我也很困惑,我不需要强制转换为json,而是直接对字符串进行操作。
Json示例:
{
"myKeyA": "Foo",
"myKeyB": [
{
"arrayElementA": "Bar"
},
{
"arrayElementB": "FooBar"
}
]
}
可以这样查询:
SELECT JSON_EXTRACT('...', '$.myKeyA');
返回"Foo"
SELECT JSON_EXTRACT('...', '$.myKeyB');
返回[{"arrayElementA": "Bar"}, {"arrayElementB": "FooBar"}]
SELECT JSON_EXTRACT('...', '$.myKeyB[1].arrayElementB');
返回"FooBar"
...
是我们要从中获取值的json输入。