如何从 MySQL 中的数字键嵌套 JSON 字段中提取值
Posted
技术标签:
【中文标题】如何从 MySQL 中的数字键嵌套 JSON 字段中提取值【英文标题】:How to extract values from a numeric-keyed nested JSON field in MySQL 【发布时间】: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 它的工作原理也是如此。谢谢!
【参考方案1】:
@易卜拉欣, 您的代码中有错误。如果您在 MySQL 中使用数字(或空格词)作为 JSON 数据类型的键,则需要双引号。
因此,在您的情况下,正确的 MySQL 语句是:
select sent->'$.data."12"' FROM mytable;
谢谢, @JeffreyKilelo
【讨论】:
以上是关于如何从 MySQL 中的数字键嵌套 JSON 字段中提取值的主要内容,如果未能解决你的问题,请参考以下文章