Как использовать процент в запросе Laravel - PullRequest
2 голосов
/ 08 января 2020

Следующий запрос приведет к 100 строкам:

$qtop = Quest::where('ttype',$id)      
                     ->where('country', $ucountry ) 
                     ->where('score', '>' , 240 ) 
                    ->orderby('score', 'desc')  
                    // ->take(25)
                    ->get(); 

Вместо использования ->take(25) как я могу взять 25% от общего числа строк?

Ответы [ 2 ]

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

в простом sql серверном синтаксисе, который вы можете использовать TOP 25 PERCENT

select TOP 25 PERCENT * from table

Для простого mysql вам необходимо использовать вложенные запросы @see Convert SQL Запрос к серверу MySQL:

SELECT *
FROM
(
    SELECT table.*, @counter := @counter +1 counter
    FROM (select @counter:=0) initvar, table
    ORDER BY score
) X
WHERE X.counter <= (25/100 * @counter)
ORDER BY score
0 голосов
/ 08 января 2020

Просто проверьте документацию;

$users = DB::table('users')->skip(10)->take(5)->get();

https://laravel.com/docs/6.x/queries#ordering -группировка-предел-и-смещение

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...