gpt4 book ai didi

MySql-Json_extract : count elements

转载 作者:行者123 更新时间:2023-11-29 17:30:48 25 4
gpt4 key购买 nike

我正在 MySQL 中使用 JSON 类型列。我有一个包含两列 id 和 jsondata (json 类型列)的表。以下是我的 json 行的示例:

{
"id": "35",
"var": [
{
"inf": "VALUE1",
"prod": {
"xProd": "PRODUCT 1",
},
"nItem": 1
},
{
"inf": "VALUE2",
"prod": {
"xProd": "PRODUCT 2",
},
"nItem": 2
},
]
}

提取“var”属性大小的句子是怎样的?就我而言,var 属性内部有 2 个值:“inf: VALUE1”和“inf:VALUE2”。

我的目标是创建一个具有以下格式的表格:

ID     QTD_VAR     INF
35 2 VALUE1, VALUE2

如果我使用下面的代码,我可以从 JSON 中提取 VALUE2:

select JSON_EXTRACT(`jsondata` , '$.id.var[1].INF')
from tmp;

但问题是我不知道“var”每行可以有多少个元素。

如有任何帮助,我们将不胜感激。

最佳答案

您可以使用一些12.16.1 JSON Function Reference 。您需要调整所需的一切。

只有一些想法:

SELECT
CAST(JSON_UNQUOTE(JSON_EXTRACT(@`json`, '$.id')) AS SIGNED) `ID`,
JSON_LENGTH(@`json`, '$.var') `QTD_VAR`,
REGEXP_REPLACE(JSON_EXTRACT(@`json`, '$.var[*].inf'), '[\\[\\]"]', '') `INF`;

参见dbfiddle .

关于MySql-Json_extract : count elements,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50672950/

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