1,使用json_contins查询
select * from abnormal
where status = 1
and state in (10, 20, 25) # 3
and settle_info != ''
and json_contains(settle_info -> '$.cids', '32428')
;
2,使用json_exact查询
看了下数据库,发现确实有些记录的该字段为空。后来查了下官方文档,发现可以用JSON_VALID来确保该字段包含JSON,这样就可以防止此错误,修改后的sql如下。