我尝试为表设置行号但是得到这样的错误
PDOException SQLSTATE [42601]:语法错误:7错误:语法错误 或靠近“@”LINE 1:SET @ rownum = 0 ^
这是我的代码
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();
我该如何解决这个问题?
答案 0 :(得分:1)
Postgres不支持@
变量 - 这是一个mysql功能。您可以使用row_number()
代替为每行分配一个数字:
$bill = MonthlyBill::info()
->billPeriod($bill_period_id)
->select(DB::raw("row_number() over (order by some_column) row"), "monthly_bill.*", "t.*")
->get();