【问题标题】:How to extract values from a numeric-keyed nested JSON field in MySQL如何从 MySQL 中的数字键嵌套 JSON 字段中提取值
【发布时间】:2018-09-08 11:24:02
【问题描述】:

我有一个 MySQL 表,其中包含一个名为 sent 的 JSON 列。该列中的条目具有如下信息:

{
 "data": {
  "12":"1920293"
 }
}

我正在尝试使用 mysql 查询:

select sent->"$.data.12" from mytable

但我得到一个例外:

Invalid JSON path expression. The error is around character position 9.

知道如何提取信息吗?该查询适用于非数字子字段。

【问题讨论】:

  • 试试"$.data.\"12\""
  • 尝试使用函数JSON_CONTAINS
  • @wchiquito 它不起作用。它将字符串' "12" ' 视为键
  • 这似乎是 mysql 引擎中的错误,因为我在这里得到 Error: UNKNOWN_CODE_PLEASE_REPORT: db-fiddle.com/f/bLUtMxWwAH9A2hT7LEaATS/0
  • @wchiquito 它的工作原理也是如此。谢谢!

标签: mysql json mysql-json


【解决方案1】:

@易卜拉欣, 您的代码中有错误。如果您在 MySQL 中使用数字(或空格词)作为 JSON 数据类型的键,则需要双引号。

因此,在您的情况下,正确的 MySQL 语句是:

select sent->'$.data."12"' FROM mytable;

谢谢, @JeffreyKilelo

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-06
    • 2023-01-20
    • 1970-01-01
    相关资源
    最近更新 更多