Laravel Eloquent: Как сформировать запрос «Выбрать отличное с количеством»? - PullRequest
0 голосов
/ 18 января 2020

Мне нужно сформировать очень простой mySQL запрос:

SELECT DISTINCT `name`, 
                Count(*) AS count 
FROM   users 
WHERE  id > 1 
GROUP  BY `name`;

Я пробую это:

$users = User::where('id', '>', '1')
                ->distinct('name')
                ->count();

Результат - 52 :( Как это исправить?

1 Ответ

1 голос
/ 18 января 2020

Вы можете использовать selectRaw :

$users = User::selectRaw('distinct `name`')
    ->selectRaw('count(*) as count')
    ->where('id', '>', 1)
    ->groupBy('name')
    ->get();

, который будет выполнять следующий запрос:

select
    distinct `name`,
    count(*) as count
from `users`
where
    `id` > 1
group by `name`
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...