You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel中如何使用where查询JSON类型列?

Laravel JSON列查询方法

在Laravel中查询JSON类型列的特定属性,有几种简洁且正确的写法,替代你之前错误的语法:

基础查询方式

1. 使用->操作符直接指定JSON属性

这是最常用的方式,适用于MySQL、PostgreSQL等支持JSON的数据库:

$data = myModel::where('myJsonColumn->myJsonProperty', 1)->first();

如果JSON属性是嵌套结构,还可以多层级指定:

// 比如JSON结构是 {"user": {"id": 1}}
$data = myModel::where('myJsonColumn->user->id', 1)->first();

2. 使用whereJsonContains方法

如果需要匹配JSON数组或者对象中的属性值,可以用这个方法:

// 匹配JSON对象中myJsonProperty等于1的记录
$data = myModel::whereJsonContains('myJsonColumn', ['myJsonProperty' => 1])->first();

// 如果myJsonColumn是数组,比如[{"id":1}, {"id":2}],可以匹配包含指定元素的记录
$data = myModel::whereJsonContains('myJsonColumn', ['id' => 1])->first();

注意事项

  • 确保你的数据库版本支持JSON类型(MySQL 5.7+、PostgreSQL 9.4+等)
  • 查询数值类型的JSON属性时,Laravel会自动处理类型匹配,无需额外转换字符串

内容的提问来源于stack exchange,提问作者exileValor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 11:19:53