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