Изучение различных методов использования «где не внутри» с Laravel – подробное руководство

В 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.

Не забудьте оптимизировать и протестировать свои запросы, чтобы убедиться, что они соответствуют потребностям вашего приложения.