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

use*_*296 6 mariadb

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

{
  "1":"Windows 10",
  "2":"Windows 8",
  "3":"Windows 7",
  "4":"MAC OS"
 }
Run Code Online (Sandbox Code Playgroud)

Mor*_*itz 5

我也发现有关该主题的文档非常有限,示例似乎只显示如何导航数组而不是对象。来自其他数据库的我也很困惑,我不需要转换为 json,而是直接对字符串进行操作。

示例 Json:

{
  "myKeyA": "Foo",
  "myKeyB": [
    {
      "arrayElementA": "Bar"
    },
    {
      "arrayElementB": "FooBar"
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

可以这样查询:

  • SELECT JSON_EXTRACT('...', '$.myKeyA');回报"Foo"
  • SELECT JSON_EXTRACT('...', '$.myKeyB');回报[{"arrayElementA": "Bar"}, {"arrayElementB": "FooBar"}]
  • SELECT JSON_EXTRACT('...', '$.myKeyB[1].arrayElementB');回报"FooBar"

其中...是我们要从中获取值的 json 输入。


Bha*_*ary 1

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

这里 $ 表示 JSON 文档树。

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