如何在 mariadb 中使用 -> 运算符查询 JSON 列

2024-03-05

我正在尝试获取时间表,将 json 列数据与 Laravel 项目中的以下代码进行比较:

$schedules = Schedule::where('schedule_with->company_person', $contact_company_person->id)->get();

这会生成如下 SQL 查询:

select * from `schedules` where `schedule_with`->'$."company_person"' = 1;

虽然这适用于 MYSQL 5.7 及更高版本,但不适用于 MARIADB 10.5。但 MARIADB 从 10.2 开始已经支持 JSON 列。 对于 MARIADB,以下查询有效:

select * from schedules where JSON_Value(schedule_with, "$.company_person") = 3;

Laravel 中是否需要进行一些配置更改才能使其正常工作?

我知道它可以通过原始查询来实现,我很好奇我错过了什么?

谢谢你,


不,您无法进行任何配置更改来启用此功能。

引用 MariaDB 的文档10.5与MySQL的区别(8) https://mariadb.com/kb/en/incompatibilities-and-feature-differences-between-mariadb-105-and-mysql-80/#incompatibilities:

MariaDB 10.5 不支持 MySQL 的 JSON 运算符(-> 和 ->>)。

“没有如果,没有但是”。


我想你可以使用正则表达式替换来编辑 Laravel 生成的 SQL就在之前SQL 被执行了,但是执行起来相当困难,而且看起来太老套了,不值得。相比之下,原始的 where 查询并没有那么难看:

$table->whereRaw('JSON_VALUE(schedule_with, ?) = ?', ['$.company_person', 3])
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 mariadb 中使用 -> 运算符查询 JSON 列 的相关文章

  • 为什么验证不起作用并跳转到另一个页面?

    我写了一个customer display php来验证数据 到目前为止只有名字 但无论名字字段是否为空 网页都会跳转到customer search php并且没有更改数据库中的信息 为什么
  • 在 Symfony 序列化中更改序列化属性名称

    我正在使用 Symfony 序列化器 效果很好 use Symfony Component Serializer Annotation Groups Groups default notification public function g
  • 使用先前的反向引用作为命名捕获组的名称

    有没有办法使用对先前捕获组的反向引用作为捕获组的名称命名捕获组 这可能不可能 如果不可能 那么这就是一个有效的答案 下列 data description some description preg match data matches p
  • 如何使用 Twig 的属性函数访问嵌套对象属性

    我试图使用一个树枝变量来访问另一个树枝变量的属性 直到我找到 属性 函数为止 该变量才起作用 除了需要访问嵌套属性的情况外 效果很好 当包含属性的变量实际上是对象 属性时 它不起作用 例如 attribute object1 variabl
  • 如何在 PHP 中使用 cURL 发出同时包含 GET 和 POST 参数的请求?

    其他人已经问过如何从 perl java bash 等执行此操作 但我需要在 PHP 中执行此操作 并且我没有看到任何已提出的专门与 PHP 相关的问题 或包含 PHP 的答案 My code ch curl init url curl s
  • MYSQL 区分大小写的 utf8 搜索(使用 hibernate)

    我的登录表具有 utf8 字符集和 utf8 排序规则 当我想要检查用户名并检索该特定用户名的其他信息时 hql 查询会为我提供小写和大写相同的结果 我应该如何处理适用于案例的 HQL 查询 我使用 Mysql 5 和 java hiber
  • Laravel 5 中的自定义验证器

    我正在将 Laravel 应用程序从 4 升级到 5 但是 我有一个自定义验证器 但无法运行 在L4中 我做了一个验证器 php文件并将其包含在全局 php using require app path validators php 我尝试
  • 如何正确转义mysql?

    我刚刚发现如果我写 select from tbl where name like foo 然后添加 foo 作为参数及其值 a 用户数据 它不会正确转义 我勒个去 它想要 a 即使我使用参数 我还是忍不住觉得我对 sql 注入持开放态度
  • WordPress 分页自定义帖子类型

    我有一个名为 新闻 的页面 使用页面模板page newslist php 它应该显示来自自定义帖子类型 也称为新闻 的帖子 我意识到两者具有相同的名称会导致问题 因此在注册自定义帖子类型时 我进行了重写以将其与页面区分开来 rewrite
  • 为什么我的 if 语句没有按我预期的方式工作?

    我正在尝试实现以下目标 我向我的 SQL 数据库询问使用SELECT FROM subjects 这样做之后我要求使用数组mysqli fetch assoc 在那之前一切都很好 现在的问题是 当我尝试在每个循环中修改 genero 的值
  • 无法通过套接字“/var/lib/mysql/mysql.sock”连接到本地 MySQL 服务器 (2)

    当我尝试连接 mysql 时出现以下错误 Can t connect to local MySQL server through socket var lib mysql mysql sock 2 这个错误有解决办法吗 其背后的原因可能是什
  • phpunit测试调用其他需要mock的类方法的方法

    我正在尝试创建一个非常标准的单元测试 在其中调用一个方法并断言它的响应 但是我正在测试的方法调用同一类中的另一个方法 该方法做了一些繁重的工作 我想模拟该方法 但仍按原样执行我正在测试的方法 仅使用从调用另一种方法返回的模拟值 我简化了示例
  • WordPress 插件中的类自动加载器

    我想编写一个类自动加载器以在 WordPress 插件中使用 该插件将安装在多个站点上 我想尽量减少与其他插件发生冲突的机会 自动加载器将是这样的 function autoload name some code here 我的主要问题是
  • PHP 数组通过 JSON 转为 jquery 数组

    我有点困惑为什么以下不起作用 get php
  • 将古吉拉特语文本插入 MySQL 表会产生垃圾字符和不可读的文本

    我有三个 MySQL 表 我正在向其中插入古吉拉特语内容 当我插入两个表时 它们插入得很好并且可读 但在一个表中 它显示垃圾字符 不可读的文本 我怎样才能解决这个问题 MySQL 有每个表的字符集设置 http dev mysql com
  • 保存多对多关系,同步/附加不存在?

    我有以下两个多对多关系的模型 use Illuminate Database Eloquent Model class Permission extends Model The database table used by the mode
  • 如何使用 PHP 对字符串进行 rot13 处理?

    我有一个很大的 php 代码 我想手动对其进行编码和解码 我的问题是 php 代码里面有很多单引号和双引号 因此我在使用时出现错误str rot13 功能如下 那么正确的语法是什么以及如何使用下面的函数进行编码 str rot13 That
  • 从 PHP 数组生成 HTML 表

    我不明白这一点 我需要解决看似简单的问题 但这超出了我的逻辑 我需要编写一个函数 table columns input cols 它将输出一个表 示例 input array apple orange monkey potato chee
  • 为什么我的会话仍然存在?

    我一定很愚蠢 因为似乎一件相当明显的事情现在让我完全困惑 我有一个会议 ie SESSION handbag id 在某个时刻 我需要彻底终止这个会话 ie at the start of the page session start el
  • 将第三个表链接到多对多关联中的桥接表

    设计这个数据库的正确方法是什么 这是我设置表格的方式 我在名为 教师 的表和名为 仪器 的表之间存在多对多关系 然后我有一个连接两者的桥接表 我想将另一个表与 BRIDGE 表关联起来 意思是乐器 老师的组合 该表有 3 行 指定老师可以教

随机推荐

  • 如何将 IPV6 地址转换为 IPV4 地址?

    我有使用 IPv4 地址的应用程序 它存储它们很长 因此它只理解 IPv4 地址 是否可以使用Java将IPv6地址转换为IPv4地址 While IPv4 地址范围有 IPv6 等效项 https en wikipedia org wik
  • archiveBaseName 应用于所有构建类型

    我有以下应用程序build gradle android compileSdkVersion 23 buildToolsVersion 23 0 1 defaultConfig applicationId io gresse hugo an
  • 使用 const 断言,如何从任意嵌套对象中提取文字类型?

    这个问题是后续问题this one https stackoverflow com q 76288737 6923555 其中我有一个深度为 2 的结构 const grandkids Karen Ava Alice Amelia Emma
  • 预约和行项目

    我正在构建一个管理应用程序来帮助管理我的移动汽车美容公司 希望还有其他公司 我正在努力弄清楚如何对某些数据进行建模 这个问题与我之前发布的问题相关 但我在下面转载了相关信息 数据库设计 谷歌应用引擎 https stackoverflow
  • 签名字段中的“锁定”字典是签名后签名损坏的原因

    在 PDFBox 2 x 中我把 Lock字典到签名字段 import org apache pdfbox cos COSDictionary import org apache pdfbox cos COSName import org
  • 三星 Galaxy Note 模拟器

    我正在尝试为 Samsung Galaxy Note 创建模拟器 但它不起作用 我尝试了以下配置 sdk r17 平台2 3 3 分辨率 1280x800 密度320 模拟器皮肤已上线 但它没有任何导航键 菜单 返回和主页键 也没有显示键盘
  • XQuery 3.0 相当于 xquery 1.0 版本中的 group by

    我有以下代码 并且我的 saxon jar 文件无法读取 xquery 3 0 for item in doc order xml item group by d item dept order by d return
  • iPad 上的最大沙箱大小是多少?

    我正在编写一个充当媒体播放器 视频和照片 的 iPad 应用程序 我知道应用程序有 2GB 大小限制 但这就是应用程序下载时的大小限制吗 或者在应用程序的整个生命周期中沙箱大小的限制 例如 如果我的小应用程序稍后将各种媒体文件下载到其沙箱中
  • logger.log 未记录到 alfresco.log

    我正在尝试在与 Alfresco 中的模板页面相对应的 javascript 文件中使用 logger log Hello 我设置了以下内容 在custom log4j properties中 覆盖log4j properties log4
  • 仅显示适合的项目数量,然后展开以紧密贴合

    我有一个容器 我想水平地容纳多个孩子 但我知道我的孩子数量比通常容纳的要多 只使用CSS 我如何只显示适合的项目 并将它们展开以紧密贴合 期望的结果
  • 为 Azure Api 管理 Git 存储库生成密码

    Azure Api 管理可以选择为集成 git 存储库创建有时限的密码 作为 VSTS 发布管理的一部分 我们希望将更改自动推送到此 git 存储库 我们不想每个月通过 Azure 门户创建一个新的 git 密码 发布者门户提供证书 htt
  • 无法使用 jquery 的单击事件处理程序来检测右键单击

    在尝试使用 jquery 检测鼠标右键单击时 我注意到单击事件处理程序似乎不会通过鼠标右键单击触发 而 mousedown 或 mouseup 事件处理程序则会触发 例如 右键单击测试 div 后 会出现以下警报 正在测试 test mou
  • 如何禁用 .htaccess 中的 mod_security 和 mod_security2

    我创建了一个 WordPress 插件 该插件很受欢迎 但我收到很多抱怨它不起作用 登录到许多用户的 WP 网站后 在询问管理员密码后 我注意到我无法轻松解决的最后一个问题是 mod security 和 mod security2 阻止了
  • load 在本地路径上工作,require 则不行

    装载者 rb puts gt This is the second file 加载演示 rb puts This is the first master program file load loadee rb puts And back a
  • Excel:按行内容对列进行排序

    这很难描述 我有一些专栏 比如说三个 10 20 20 20 22 24 24 24 26 我喜欢得到的是 10 XX XX 20 20 20 XX 22 XX 24 24 24 XX XX 26 其中 XX 是空单元格 有办法得到这个吗
  • python 计算列表中的元素数量

    我需要能够计算出列表中有多少个字符串 O top board None None None None None None None None None None None None None None None None None None
  • 使用服务的 DDD 实体

    我有一个应用程序 我试图使用至少一个名义上的 DDD 类型的域模型来构建 并且正在努力解决某个部分 我的实体有一些业务逻辑 这些逻辑使用我当前在某些域服务中拥有的一些财务计算和费率计算 以及我放入值对象中的一些常量值 我正在努力解决如何让实
  • 如何在不使用任何框架或库的情况下在屏幕上绘制图形?

    我想手动绘制图形 这意味着不使用任何库或框架 如 QT directX whindow h 就像向屏幕上的每个像素发出命令以在不同时间显示某种特定颜色 每个机构都会根据这些库或它们的名称提供教程 我想要的是制作我自己的 GUI 据我所知 这
  • 强制从外部页面刷新网页

    我有这样的情况 100 台计算机正在显示一个网页 我可以从后端更新此网页 我希望我的 100 台计算机上显示的网页能够自动更新 有没有办法在不轮询的情况下刷新 更新页面 最好的方法是外部页面可以强制页面重新加载 但我认为这是不可能的 Tha
  • 如何在 mariadb 中使用 -> 运算符查询 JSON 列

    我正在尝试获取时间表 将 json 列数据与 Laravel 项目中的以下代码进行比较 schedules Schedule where schedule with gt company person contact company per