@LaraQuestions

Как сделать выборку из одной таблицы по одинаковым столбцам?

Добрый день, хотел бы получить ответ на вопрос как сделать, либо ссылки на статью если таковы есть под рукой

Существует таблица с параметрами

id code value itemID
1 vodakanal yes 1
2 vodakanal no 2
3 vodakanal yes 3
4 test yes 1

Как получить из таблицы уникальные itemID у которых

$result->where([
         ['code', '=', 'vodakanal'],
         ['value', '=', 'yes'],
     ]);


И одновременно

$result->where(function($query) {
         $query->where('code', 'test')
             ->where('value', 'yes');
     });


Как правильно построить запрос?
  • Вопрос задан
  • 60 просмотров
Пригласить эксперта
Ответы на вопрос 1
@rst630
Table::where([
            ['value','yes'],
            [
                function($q) {
                    return $q
                        ->where('code','vodakanal')
                        ->orWhere('code','test');
                }
            ]
        ])->get();


Где Table это имя модели или $result - что там у вас в нем

Это сгенерирует запрос:
select * from `table` where (`value` = ? and (`code` = ? or `code` = ?))


Вроде то что вам и нужно.

Проверить какой запрос будет на выходе можете заменив get() на toSql()

видимо можно еще упростить вот так:
Table::where('value','yes')->whereIn('code',['vodakanal','test'])->get();
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы