zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

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

mysqlJSONJSON 故障 处理 远程 报错 修复
2023-06-13 09:19:13 时间
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。


我想要获取技术服务或软件
服务范围:MySQL、ORACLE、SQLSERVER、MongoDB、PostgreSQL 、程序问题
服务方式:远程服务、电话支持、现场服务,沟通指定方式服务
技术标签:数据恢复、安装配置、数据迁移、集群容灾、异常处理、其它问题

本站部分文章参考或来源于网络,如有侵权请联系站长。
数据库远程运维 MySQL Error number: 3665; Symbol: ER_MISSING_JSON_TABLE_VALUE; SQLSTATE: 22035 报错 故障修复 远程处理