MySQL JSON NULL查询

最近遇到个奇葩问题,查询MySQL表A里的一个字段content,字段数据是json格式的,格式类似下面这种:

python 复制代码
{
	"errorCode": "SVCSTG.ALS.200.200",
	"errorMessage": "Report success.",
	"result": null
}
sql 复制代码
select  JSON_EXTRACT(content,'$.result') as a from A where a<> NULL ;

查询不出result字段为null的数据,然后使用json_type()函数看下字段的数据类型

sql 复制代码
select  JSON_TYPE(JSON_EXTRACT(content,'$.result')) as a from A where a<> NULL ;

查询结果显示确实是NULL,那就见鬼了!然后检查了字段是否包含空格,空串结果还是排除不掉null的数据然后使用

sql 复制代码
select  JSON_TYPE(JSON_EXTRACT(content,'$.result')) as a from A where a!= 'null'
and a!='' and a IS NOT NULL;

查询的结果还是有null数据,然后突发奇想查查result值为null的数据呢?

sql 复制代码
select  JSON_TYPE(JSON_EXTRACT(content,'$.result')) as a from A where a IS NULL ;

查询结果显示查询出的数据不包含result字段,因此可以断定JSON_TYPE中的NULL数据类型和MySQL中的NULL不是一回事,最后试了下<>'NULL'才凑效

sql 复制代码
select  JSON_TYPE(JSON_EXTRACT(content,'$.result')) as a from A where a<> 'NULL' ;

这个sql查询出的结果才是理想的数据~

结论:MySQL中的字段中json串中字段的null值等价于字符串"NULL",坑爹啊

相关推荐
老杨聊技术8 小时前
CentOS 7 安装 MySQL 8 保姆级教程
linux·mysql·centos
sunxr.2278 小时前
Mysql-----最后一次作业
数据库·mysql
CodexDave15 小时前
Python 自动化接单实战(一):把 CSV 需求做成配置驱动解析器
java·python·自动化·json·数据清洗·python自动化·csv处理
古月方枘Fry16 小时前
基于大模型+MySQL的innoai助手(可适配多数环境)
网络·数据库·mysql·aigc
无忧.芙桃17 小时前
MySQL数据库原理与实践(四):基本查询
大数据·数据库·mysql
三84418 小时前
get方法/post方法/SQL注入文字型/数字型
数据库·sql·mysql
啦啦啦啦啦zzzz19 小时前
oat++框架应用之do、dao、service
服务器·c++·mysql·oatpp
暖和_白开水19 小时前
数据分析agent(十三_5):meta_demo:mysql
mysql·数据挖掘·数据分析
暖和_白开水1 天前
数据分析agent(十三_3):docker mysql容器镜像服务的异常错误
mysql·docker·容器
ttwuai1 天前
AI 生成后台改数据后,操作日志别只记按钮:Go + MySQL 怎么验
数据库·人工智能·mysql·golang