MySQL报错:json_contains: “The document is empty.“ at position 0.

起因

在使用json_contains查询MySQL表里面的JSON字段数据时,报错:3141 Invalid JSON text in argument 1 to function json_contains: "The document is empty." at position 0.

经过

通过排查发现,是因为所查JSON字段json_field存在空值""引起的,原SQL语句如下所示:

SELECT* 
FROM`table` 
WHEREjson_contains(`json_field`, '{"id":462}') AND `table`.`deleted_at` IS NULL

刚开始通过增加JSON字段不为空的方法来尝试解决,SQL语句如下所示:

SELECT* 
FROM`table` 
WHERE`json_field` IS NOT NULL AND json_contains( `json_field`, '{"id":462}' ) AND `table`.`deleted_at` IS NULL

发现此种方法不适合于我的情况,可以参考。

解决

通过MySQL的json_valid函数先排除非法JSON字段的数据行,再执行查询即可,SQL如下所示:

SELECT* 
FROM`table` 
WHEREjson_valid( `json_field` ) AND json_contains( `json_field`, '{"id":462}' ) AND `table`.`deleted_at` IS NULL

PHP框架laravel解决方式:

$table->whereRaw('json_valid(json_field)')->whereJsonContains("json_field", ["id" => 462]);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/87493.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

机器学习——SVM(支持向量机)

0、前言: SVM应用:主要针对小样本数据进行学习、分类和回归(预测),能解决神经网络不能解决的过学习问题,有很好的泛化能力。(注意:SVM算法的数学原理涉及知识点比较多,所…

【ELFK】之消息队列kafka

一、kafka的定义 Kafka 是一个分布式的基于发布/订阅模式的消息队列(MQ,Message Queue),主要应用于大数据实时处理领域。Kafka 是最初由 Linkedin 公司开发,是一个分布式、支持分区的(partition&#xff0…

复习Day03:数组part03:76 . 最小覆盖子串、438. 找到z字符串z中所有字母异位词

之前的blog链接:https://blog.csdn.net/weixin_43303286/article/details/131700482?spm1001.2014.3001.5501 我用的方法是在leetcode再过一遍例题,明显会的就复制粘贴,之前没写出来就重写,然后从拓展题目中找题目来写。辅以Lab…

Linux chown命令:修改文件和目录的所有者和所属组

chown 命令,可以认为是 "change owner" 的缩写,主要用于修改文件(或目录)的所有者,除此之外,这个命令也可以修改文件(或目录)的所属组。 当只需要修改所有者时&#xff0c…

中国城市政商关系健康总指数、方面指数及一级指标得分2018

中国城市政商关系健康总指数、方面指数及一级指标得分2018 1、指标:省份代码、省份、城市代码、城市名称、政商关系健康指数、亲近指数、清白指数、政府关心、政府服务、企业税负、政府廉洁度、政府透明度 2、范围:290个地级市 3、数据说明&#xff1…

pandas--->CSV / JSON

csv CSV(Comma-Separated Values,逗号分隔值,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本)。 CSV 是一种通用的、相对简单的文…

数据集笔记:T-drive 北京出租车轨迹数据

数据地址:T-Drive trajectory data sample - Microsoft Research 1 数据描述 此数据集包含了2008年2月2日至2月8日在北京期间10,357辆出租车的GPS轨迹。此数据集中的总点数约为1500万,轨迹的总距离达到了900万公里。图1显示了两个连续点之间的时间间隔和…

多数据源Pagehelper怎么配置

1.遇到的问题 若依增加多数据源,分页报错,查了下pagehelper也要修改配置。 官方配置: 官方文档:连接多数据源sqlServer使用分页的情况下报错,不使用分页时正常。 Issue #I3NJMR 若依/RuoYi - Gitee.com 我的配置&a…

构建基于Apache Mynewt的传感器网络应用程序:一个专为STM32 Blue Pill和nRF52设计的C语言教程

第一部分:引言和STM32 Blue Pill设置 1. 引言 在当今的智能设备和IoT时代,传感器网络在各种应用中发挥着关键作用,从家庭自动化到工业自动化等等。为了有效地部署这些网络,开发人员需要一个强大、灵活且轻量级的操作系统。Apache…

基于springboot+vue的校园资产管理系统

博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目介绍…

Java中的全局变量和局部变量

在Java中,全局变量和局部变量是两种不同作用域的变量。 全局变量(成员变量): 在类中定义的变量称为成员变量,也叫全局变量。它们的作用域是整个类,在类的任何地方都可以被访问。如果没有显式地初始化&#…

贪心算法-会议室问题

1、题目描述 一些项目要占用一个会议室宣讲,会议室不能同时容纳两个项目。现在给你两个长度一样的数组,starts数组代码每个会议开始的时间,ends数组代表每个会议结束的时间。 在给你一个当前时间,请你求出当日可以利用会议室宣讲的…

睿趣科技:抖音开通蓝V怎么操作的

在抖音这个充满创意和活力的社交媒体平台上,蓝V认证成为了许多用户的梦想之一。蓝V认证不仅是身份的象征,还可以增加用户的影响力和可信度。但是,要在抖音上获得蓝V认证并不是一件容易的事情。下面,我们将介绍一些操作步骤&#x…

Nginx负载均衡详解

一、负载均衡介绍 1、负载均衡的定义 单体服务器解决不了并发量大的请求,所以,我们可以横向增加服务器的数量(集群),然后将请求分发到各个服务器上,将原先请求集中到单个服务器上的情况改为将请求分发到多…

Linux 读写锁

读写锁是一把锁 /*读写锁的类型 pthread_rwlock_tpthread_rwlock_init(pthread_rwlock_t *restrict rwlock, const pthread_rwlockattr_t *restrict attr);int pthread_rwlock_destory(pthread_rwlock_t *rwlock);int pthread_rwlock_rdlock(pthread_rwlock_t *rwlock);int pt…

多台群晖实现按计划WOL网络自动唤醒数据冷备份

几年前买了2盘位的DS218,但是随着照片的增加已经不够用。年中购入了4盘位的群晖DS923、2块16T西数数企业级硬盘、1块2T intel企业级 SSD 1.什么是冷备份 冷备是离线备份,备份好的数据可以单独存取,定期冷备可以保证数据安全,适合…

设计模式篇---桥接模式

文章目录 概念结构实例总结 概念 桥接模式:将抽象部分与它的实现部分解耦,使得两者都能够独立变化。 毛笔和蜡笔都属于画笔,假设需要有大、中、小三种型号的画笔,绘画出12种颜色,蜡笔需要3*1236支,毛笔需要…

Unity当中的灯光类型

文章目录 前言一、Directional平行光二、Point点灯三、Spot 聚光灯四、Area面光灯,只用于烘培 前言 Unity当中的灯光类型 一、Directional平行光 Unity当中最重要的灯管类型,类似现实中的太阳光 二、Point点灯 类似现实中的灯泡,萤火虫&a…

Python爬虫:Session、Cookie、JWT

当你在Python中进行网络爬虫时,需要处理会话(Session)、Cookie和JWT(JSON Web Token)时,以下是更详细的介绍和示例: Session(会话): 会话用于维护用户的状态…

java版网页代码生成器系统myeclipse定制开发mysql数据库网页模式java编程jdbc生成无框架java web网页

一、源码特点 java版网页代码生成器系统是一套完善的web设计系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码,系统主要采用B/S模式开发。开发环境为 TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql5.0,使…