Как построить запрос в Laravel Query Builder "... ANY (ARRAY ['1', '56', '34'] :: jsonb []);» - PullRequest
1 голос
/ 16 июня 2020

Как я могу построить этот запрос в Laravel Конструкторе запросов

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

Laravel есть метод DB::whereJsonContains(), но он ищет AND условие, но мне нужно OR условие ...

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

1 Ответ

0 голосов
/ 16 июня 2020

вы можете использовать илиWhereJsonContains

 $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();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...