Postgresql 如何将DB::raw()与postgres一起使用?
我试图设置表的行号,但得到如下错误 PDOException SQLSTATE[42601]:语法错误:7错误:语法错误位于 或在“@”行1附近:设置@rownum=0^ 这是我的密码Postgresql 如何将DB::raw()与postgres一起使用?,postgresql,laravel,Postgresql,Laravel,我试图设置表的行号,但得到如下错误 PDOException SQLSTATE[42601]:语法错误:7错误:语法错误位于 或在“@”行1附近:设置@rownum=0^ 这是我的密码 DB::statement(DB::raw('SET @rownum=0')); $bill = MonthlyBill::info() ->billPeriod($bill_period_id) ->select(DB:
DB::statement(DB::raw('SET @rownum=0'));
$bill = MonthlyBill::info()
->billPeriod($bill_period_id)
->select(DB::raw("@rownum := @rownum + 1 AS row"), "monthly_bill.*", "t.*")
->get();
如何修复此问题?Postgres不支持
@
变量-这是mysql的一项功能。您可以使用row\u number()
为每一行指定一个数字:
$bill = MonthlyBill::info()
->billPeriod($bill_period_id)
->select(DB::raw("row_number() over (order by some_column) row"), "monthly_bill.*", "t.*")
->get();