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