gpt4 book ai didi

Mysql JSON_EXTRACT 在路径中带双引号不起作用

转载 作者:行者123 更新时间:2023-11-29 17:56:34 27 4
gpt4 key购买 nike

我有下表定义:

`CREATE TABLE `TestInfo` (
`Info` json DEFAULT NULL
) ;
`

正在插入两行带有 json 值的行。

INSERT INTO `TestInfo` (`Info`)
VALUES
('{
"statusCode": 200,
"result": {
"summary": {
"area": 0.0009904206008286565
}
}
} '
);

INSERT INTO `TestInfo` (`Info`)
VALUES
(
'{
"statusCode": 200,
"result": {
"summary": {
"area": 0.0009904206008286565,
"realty-society": {
"price-min": {
"property": "price-min",
"min": 110000.00000000001,
"max": 150000000,
"average": 31184468.085106384,
"sum": 1465670000
}
}
}
}
} '
);

当我运行查询时:

SELECT JSON_EXTRACT(Info, '$.result.summary') 
FROM TestInfo ;

它返回 2 行。这可以。但是当我在路径周围使用双引号运行相同的查询时,如下所示:

SELECT JSON_EXTRACT(Info, '$."result.summary"') 
FROM TestInfo;

它将 2 行(单列)返回为 NULL。

最终我需要对其中包含连字符(破折号)的键使用双引号。我在 AWS 上使用 MySQL 5.7。请帮忙。

最佳答案

不要在整个路径周围放置双引号,只需在包含特殊字符的特定属性名称周围放置双引号,例如

SELECT JSON_EXTRACT(Info, '$.result.summary."realty-society"."price-min"')
FROM TestInfo

您的代码使 . 成为文字属性名称的一部分,而不是属性之间的分隔符。如果您有以下情况,您就会使用它:

"result.summary": ...

在对象中。

关于Mysql JSON_EXTRACT 在路径中带双引号不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48760610/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com