gpt4 book ai didi

mysql - 无法读取 MySQL 中的 JSON 数据

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

当我读取 JSON 数据时 -

示例查询:

SELECT *
FROM
JSON_TABLE(
CONCAT('[', '351615,12345678', ']'),
"$[*]"
COLUMNS(
ids BIGINT(20) PATH "$"
)
) AS tt

错误:

"Missing a comma or ']' after an array element." at position 2.

当我删除整数前面的 00 时,它会给出正确的结果。

SELECT *
FROM
JSON_TABLE(
CONCAT('[', '351615,12345678', ']'),
"$[*]"
COLUMNS(
ids BIGINT(20) PATH "$"
)
) AS tt

输出:

351615
12345678

有人可以建议我缺少什么吗?

最佳答案

您可以使用 JSON_ARRAY 而不是连接字符串来获取 JSON 数组值:

-- single value
SELECT *
FROM JSON_TABLE(
JSON_ARRAY('00351615'),
"$[*]"
COLUMNS(
ids BIGINT(20) PATH "$"
)
) AS tt

-- multiple values
SELECT *
FROM JSON_TABLE(
JSON_ARRAY('00351615', '12345678'),
"$[*]"
COLUMNS(
ids BIGINT(20) PATH "$"
)
) AS tt

...或者您使用 " 转义该值:

-- single value
SELECT *
FROM JSON_TABLE(
CONCAT('[', '"00351615"', ']'),
"$[*]"
COLUMNS(
ids BIGINT(20) PATH "$"
)
) AS tt

-- multiple values
SELECT *
FROM JSON_TABLE(
CONCAT('[', '"00351615","12345678"', ']'),
"$[*]"
COLUMNS(
ids BIGINT(20) PATH "$"
)
) AS tt

您还可以使用 JSON_VALID 检查您的 JSON 值是否有效:

SELECT JSON_VALID(CONCAT('[', '00351615', ']')) -- 0 (not valid)

demo on dbfiddle.uk

关于mysql - 无法读取 MySQL 中的 JSON 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59856310/

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