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

Laravel查询含对象数组的JSON列:获取指定条件行

查询满足嵌套JSON数组条件的行

针对你的需求(获取id=35且json_col数组中存在对象满足key_two.value=1且key_two.type='static'的行),以下是两种实现方式:

Laravel 查询构造器(Query Builder)

利用Laravel内置的whereJsonContains方法,可直接匹配JSON数组中的嵌套结构:

$targetRow = DB::table('your_table') // 替换为你的实际表名
    ->where('id', 35)
    ->whereJsonContains('json_col', [
        'key_two' => [
            'value' => 1,
            'type' => 'static'
        ]
    ])
    ->first();

该方法会自动适配不同数据库的JSON语法,无需手动拼接复杂的JSON函数。

原生SQL查询

以MySQL为例

直接使用MySQL的JSON_CONTAINS函数实现条件筛选:

SELECT *
FROM your_table -- 替换为你的实际表名
WHERE id = 35
AND JSON_CONTAINS(json_col, '{"key_two": {"value": 1, "type": "static"}}');

以PostgreSQL为例

使用jsonb_path_exists函数实现更灵活的JSON路径查询:

SELECT *
FROM your_table -- 替换为你的实际表名
WHERE id = 35
AND jsonb_path_exists(json_col, '$[*] ? (@.key_two.value == 1 && @.key_two.type == "static")');

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 18:05:22