所有 我正在使用laravel 5,我的代码就像这样
$assign = Assign::where('kh','=',$product->kh)->update(['plan_assign_amount' => 'ROUND(single_sales_rate*'.($skuCounts*2).')']);
所以这很容易,实际上在mysql语句中,我的sql字符串是这样的
update `assign` set `plan_assign_amount` = ROUND(single_sales_rate*18);
但是它无法工作,所以有一种简单的方法吗?或者只使用DB:update()来运行原始sql?
感谢您的帮助;
答案 0 :(得分:0)
您可以使用DB::statement
,DB::raw
或DB::update
运行原始数据库查询,或者您可以尝试执行以下操作:
$assign = Assign::where('kh', '=', $product->kh)->first();
$assign->update(['plan_assign_amount' => round($assign->single_sales_rate * $skuCounts * 2)]);
答案 1 :(得分:0)
找到答案是
$assign = DB::table('assign')->where('kh','=',$product->kh)->update(['plan_assign_amount' => DB::raw('ROUND(single_sales_rate*'.($skuCounts*2).')')]);
工作正常!!