Laravel - Как выполнить конкретный запрос с помощью построителя запросов

Я использую Laravel и у меня есть очень специфический запрос, который я не знаю, как реализовать с помощью построителя запросов.

Запрос:

SET @c_num=0;

SELECT *, @c_num:=@c_num+1 AS 'COUNT' 
FROM table_name 
WHERE USERID = 2
ORDER BY id

Спасибо


person user3242861    schedule 07.09.2017    source источник


Ответы (2)


Вы должны быть в состоянии сделать что-то вроде:

DB::statement(DB::raw('SET @c_num = 0'));

$result = DB::table('table_name')
    ->selectRaw("*, @c_num:=@c_num+1 AS 'COUNT'")
    ->where('userid', 2)
    ->orderBy('id')
    ->get();
person Rwd    schedule 07.09.2017

Вы можете попробовать следующее

DB::table('table_name')
    ->selectRaw("*, @c_num:=IF(@c_num, @c_num+1, 1) as 'COUNT'")
    ->where('user_id', 2)
    ->orderBy('id');
person chanafdo    schedule 07.09.2017