В Laravel построитель запросов предоставляет удобный и интуитивно понятный способ взаимодействия с базами данных. Одной из часто используемых функций является предложение «не в», которое позволяет исключить определенные значения из результата запроса. В этой статье мы рассмотрим различные методы использования предложения «не в» в построителе запросов Laravel, а также приведем примеры кода.
Метод 1: использование методаwhereNotIn
Самый простой способ применить условие «не в» — использовать метод whereNotIn
. Он принимает два аргумента: имя столбца и массив значений, которые необходимо исключить. Вот пример:
$excludedValues = [1, 2, 3];
$users = DB::table('users')
->whereNotIn('id', $excludedValues)
->get();
Этот запрос получит всех пользователей, чьи значения столбца «id» не находятся в массиве $excludedValues
.
Метод 2: подзапрос с «whereNotIn»
Вы также можете использовать подзапрос с методом whereNotIn
, чтобы исключить значения на основе результата другого запроса. Вот пример:
$excludedIds = DB::table('excluded_users')
->pluck('user_id');
$users = DB::table('users')
->whereNotIn('id', $excludedIds)
->get();
В этом примере мы сначала извлекаем исключенные идентификаторы пользователей из таблицы excluded_users
с помощью метода pluck
. Затем мы используем whereNotIn
с полученными идентификаторами, чтобы исключить этих пользователей из результата.
Метод 3: необработанные выражения с «whereNotIn»
Если вам нужен больший контроль над оператором SQL, вы можете использовать необработанные выражения с методом whereNotIn
. Это позволяет вам писать собственные условия непосредственно в SQL. Вот пример:
$excludedValues = [1, 2, 3];
$users = DB::table('users')
->whereNotIn('id', function ($query) use ($excludedValues) {
$query->select('user_id')
->from('excluded_users')
->whereIn('status', $excludedValues);
})
->get();
В этом примере мы используем подзапрос для исключения пользователей на основе их столбцов «id» и «статус» из таблицы excluded_users
.
В этой статье мы рассмотрели различные методы использования предложения «не в» в построителе запросов Laravel. Мы рассмотрели использование метода whereNotIn
, подзапросы с помощью whereNotIn
и использование необработанных выражений. Эти методы обеспечивают гибкость и контроль при исключении определенных значений из результатов запроса. Освоив эти методы, вы сможете расширить возможности запросов к базе данных ваших приложений Laravel.
Не забудьте поэкспериментировать с этими методами в своих проектах Laravel, чтобы полностью осознать их мощь. Приятного кодирования!