JSON_EXTRACT函数记录

7,903 阅读1分钟

最近一个上线的项目突然出现一个问题,有一条sql语句出现问题,报错如下。

Invalid JSON text in argument 1 to function json_extract: "The document is empty." at position 0.

查找出来sql语句主要报错位置应该是这个条件。

where JSON_EXTRACT(item_Status,'$."11e9-1888-4e8e2c8c-871b-75b247f8aadb"')='0'

看了下数据库,发现确实有些记录的该字段为空。后来查了下官方文档,发现可以用JSON_VALID来确保该字段包含JSON,这样就可以防止此错误,修改后的sql如下。

where CASE WHEN JSON_VALID(item_Status) THEN JSON_EXTRACT(item_Status,'$."11e9-1888-4e8e2c8c-871b-75b247f8aadb"')='0' ELSE null END