2016-05-03 3 views
1

すべて このlaravel更新別のフィールドに提出された1

$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()だけを使ってraw SQLを実行しますか?

ありがとうございました。

+1

DB :: raw()を使用 – aldrin27

+0

この更新は複数の行または単一の項目に対して行われますか? –

+0

'$ skuCounts'とは何ですか? – Hamelraj

答えて

0

あなたはDB::statementDB::rawまたはDB::updateと生のDBクエリを実行することができます。また、このような何かをしようとすることができます:

$assign = Assign::where('kh', '=', $product->kh)->first(); 
$assign->update(['plan_assign_amount' => round($assign->single_sales_rate * $skuCounts * 2)]); 
0

答えが正常に動作します

$assign = DB::table('assign')->where('kh','=',$product->kh)->update(['plan_assign_amount' => DB::raw('ROUND(single_sales_rate*'.($skuCounts*2).')')]); 

です見つけます!

関連する問題