首页 > 解决方案 > 无法在 MySQL 中读取 JSON 数据

问题描述

当我读取 JSON 数据时 -

示例查询:

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

错误 :

“数组元素后缺少逗号或 ']'。” 在位置 2。

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

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

输出:

351615
12345678

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

标签: mysqlsql

解决方案


试试下面的查询,它正在工作:

SELECT * FROM JSON_TABLE('[{"x":"00351615","y":"2"}]',"$[*]" COLUMNS(xval VARCHAR(100) PATH "$.x",yval VARCHAR(100) PATH "$.y")) AS  tt;

数据类型应该是 varchar 而不是 bigint,因为带有 '00' 前缀的值不能存储在 bigint 中。


推荐阅读