MySQL Error number: 3665; Symbol: ER_MISSING_JSON_TABLE_VALUE; SQLSTATE: 22035 报错 故障修复 远程处理

文档解释

Error number: 3665; Symbol: ER_MISSING_JSON_TABLE_VALUE; SQLSTATE: 22035

Message: Missing value for JSON_TABLE column ‘%s’

错误说明

ER_MISSING_JSON_TABLE_VALUE是MySQL表示在使用JSON_TABLE函数处理JSON值时,因没有找到对应的键或对应行导致缺少值。

常见案例

示例1:如下语句声明了一个表来表示一个JSON数据,其中test_json表示一个JSON值用于填充:

CREATE TABLE test_table(

id INT,

json_doc JSON

);

INSERT INTO test_table(id, json_doc)

VALUES (1, ‘{“name”: “Mike”, “age”: 27}’);

SELECT *

FROM test_table

LEFT JOIN JSON_TABLE(json_doc, ‘$’

COLUMNS (

name VARCHAR(50) PATH ‘$.name’,

age INTEGER PATH ‘$.age’

)

)AS jt USING(json_doc);

这里的JSON_TABLE查询会返回以下错误信息:

Error Code: 3665. JSON column ‘name’ cannot be found in the value

解决方法

有几种方法可以解决ER_MISSING_JSON_TABLE_VALUE的错误:

方法1:检查JSON文档是否正确,即键和值是否存在,列表中每个数据项是否有效。

方法2:使用IFNULL或ISNULL函数可以处理NULL值,而不是ER_MISSING_JSON_TABLE_VALUE。

例如:

SELECT IFNULL(name, ‘N/A’) AS name

FROM test_table

LEFT JOIN JSON_TABLE(json_doc, ‘$’

COLUMNS (

name VARCHAR(50) PATH ‘$.name’,

age INTEGER PATH ‘$.age’

)

)AS jt USING(json_doc);

方法3:可以使用JSON_VALUE或JSON_EXTRACT函数来获取JSON值,而不是使用JSON_TABLE。

版权声明:本文由lzhuji.com主机评测所有
文章名称:《MySQL Error number: 3665; Symbol: ER_MISSING_JSON_TABLE_VALUE; SQLSTATE: 22035 报错 故障修复 远程处理》
文章链接:https://www.lzhuji.com/266494.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。

本站不对信息的真伪做任何的保障,请自行甄别,自负责任。

登录

找回密码

注册