【问题标题】:What is the syntax to extract JSON Value from column in Maria DB database?从 Maria DB 数据库中的列中提取 JSON 值的语法是什么?
【发布时间】:2018-01-30 19:58:15
【问题描述】:

我正在使用 MariaDB 10.2.8。使用 JSON_EXTRACT() 函数从以下 JSON 中的键“2”中提取值所需的语法是什么

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

【问题讨论】:

  • 所有 JSON 函数,包括 JSON_EXTRACT,都记录在 MariaDB KB 中,并附有使用示例。请阅读。
  • 它们已记录在案,但没有关于传递给函数所需的参数的任何详细信息。您提供的简单链接提供了该功能的描述,以及您可能在 API 文档中找到的内容(如果您熟悉它的话)。文档中的示例: JSON_EXTRACT(@json, '$[1]') 例如,不清楚 $ 的含义。

标签: mariadb


【解决方案1】:

我也发现有关该主题的文档非常有限,示例似乎只显示了如何导航数组而不是对象。来自其他数据库的我也很困惑,我 不需要强制转换 为 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 输入。

【讨论】:

    【解决方案2】:

    选择 JSON_EXTRACT(@json, '$[1]')

    这里的 $ 表示 JSON 文档树。

    MySQL 参考有更好的例子。但是,在将代码从 MySQL 粘贴和运行到 MariaDB 时要小心,因为 MariaDB 具有类似于 JSON 的基于文本的格式,而不是原生二进制 JSON。 https://dev.mysql.com/doc/refman/8.0/en/json.html

    【讨论】:

      猜你喜欢
      • 2019-11-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-24
      • 1970-01-01
      • 1970-01-01
      • 2021-01-30
      • 2017-07-30
      相关资源
      最近更新 更多