提问者:小点点

如何在Laravel query Builder中构建查询“…ANY(ARRAY['1','56','34']::JSONB[]);”


如何在Laravel query Builder中构建此查询

SELECT * FROM table WHERE json_field->'tags' @> ANY (ARRAY ['1', '56', '34']::jsonb[]);

Laravel有方法db::WhereJsonContains(),但它搜索条件,但我需要条件。。。

DB::table('table')->whereJsonContains('json_field', ['tags' => [1, 56, 36]]);

共1个答案

匿名用户

您可以使用orWhereJsonContains

 $tags=[1,56,36];

        $query= DB::table('table')->whereJsonContains('json_field', $tags[0]);

        for($i=1;$i<count($tags);$i++)
        {
            $query=$query->orWhereJsonContains('json_field',$tags[$i]);
        }

        $values=$query->get();