Laravel selectRaw: выполнение пользовательских SQL-запросов в Laravel с примерами

Laravel selectRaw — это метод в среде Laravel, который позволяет выполнять необработанные SQL-запросы и получать результаты. Он позволяет вам писать собственные операторы SQL и извлекать данные из базы данных. Вот несколько методов, которые можно использовать с примерами кода:

Метод 1: использование selectRaw с базовым запросом

$results = DB::table('users')
            ->selectRaw('count(*) as user_count')
            ->get();

В этом примере метод selectRawиспользуется для выполнения необработанного запроса SQL, который подсчитывает количество пользователей в таблице «пользователи». Часть as user_countпереименовывает столбец в наборе результатов на «user_count».

Метод 2: использование selectRaw с параметрами

$age = 25;
$results = DB::table('users')
            ->selectRaw('count(*) as user_count')
            ->whereRaw('age > ?', [$age])
            ->get();

В этом примере метод whereRawиспользуется вместе с selectRawдля фильтрации пользователей по их возрасту. Знак “?” заполнитель используется для привязки переменной $ageк необработанному SQL-запросу.

Метод 3: использование selectRaw с соединениями

$results = DB::table('users')
            ->selectRaw('users.name, count(orders.id) as order_count')
            ->join('orders', 'users.id', '=', 'orders.user_id')
            ->groupBy('users.name')
            ->get();

В этом примере метод joinиспользуется для объединения таблицы «пользователи» с таблицей «заказы». Метод groupByиспользуется для группировки результатов по имени пользователя. Метод selectRawиспользуется для выбора имени пользователя и подсчета количества заказов для каждого пользователя.

Это всего лишь несколько примеров того, как вы можете использовать метод selectRawв Laravel. Не забывайте проявлять осторожность при использовании необработанных SQL-запросов, чтобы избежать уязвимостей, связанных с внедрением SQL-кода.