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

159
31 октября 2018, 11:50

Есть таблица.

id |  parent | city
--------------------
1  |   null   | 1
2  |   1      | null
3  |   1      | 1
4  |   1      | 2
5  |   null   | null

Как в laravel сделать запрос, чтобы получить все записи, где parent = 1, а city равен 1 или null В данном случае - это записи с id 2 и 3.

Пробовал так:

DB::table('table')->where('parent ', '=', 1)->where('city', '=', 1)->orwhereNull('city')->get();

Возвращает все записи, где city null

Как вариант вижу - сделать два отдельных запроса, а потом их объединить, но хотелось-бы в один впихнуть...

Answer 1
$someVar = 1;
DB::table('table')->where('parent ', 1)->where(function($query) use ($someVar){
    $query->where('city', 1)
    ->orWhereNull('city');
})->get();
READ ALSO
Ускорить выполнение запроса Mysql

Ускорить выполнение запроса Mysql

Имеется таблица в ней примерно полтора миллиона записейДелаю выборку, время работы запроса примерно 10 секунд

146
Долгая выборка простого запроса

Долгая выборка простого запроса

Время выполнения 0,672 сек

139
Сгенерировать html страницу во Flask

Сгенерировать html страницу во Flask

Доброго времени суток!

175