从Maria DB数据库中的列中提取JSON值的语法是什么?

时间:2018-01-30 19:58:15

标签: mariadb

我正在使用MariaDB 10.2.8。从密钥" 2"中提取值所需的语法是什么?在下面的JSON中使用JSON_EXTRACT()函数

{
  "1":"Windows 10",
  "2":"Windows 8",
  "3":"Windows 7",
  "4":"MAC OS"
 }

2 个答案:

答案 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输入。