Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php laravel用另一个字段更新一个字段_Php_Mysql_Laravel - Fatal编程技术网

Php laravel用另一个字段更新一个字段

Php laravel用另一个字段更新一个字段,php,mysql,laravel,Php,Mysql,Laravel,全部 我使用的是Laravel5,我的代码是这样的 $assign = Assign::where('kh','=',$product->kh)->update(['plan_assign_amount' => 'ROUND(single_sales_rate*'.($skuCounts*2).')']); update `assign` set `plan_assign_amount` = ROUND(single_sales_rate*18); 这很简单,实际上在mys

全部 我使用的是Laravel5,我的代码是这样的

$assign = Assign::where('kh','=',$product->kh)->update(['plan_assign_amount' => 'ROUND(single_sales_rate*'.($skuCounts*2).')']);
update `assign` set `plan_assign_amount` = ROUND(single_sales_rate*18);
这很简单,实际上在mysql语句中,我的sql字符串是这样的

$assign = Assign::where('kh','=',$product->kh)->update(['plan_assign_amount' => 'ROUND(single_sales_rate*'.($skuCounts*2).')']);
update `assign` set `plan_assign_amount` = ROUND(single_sales_rate*18);
但是它无法工作,所以有没有一种简单的方法来实现它?或者只使用DB:update()来运行原始sql


谢谢你的帮助

您可以使用
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)]);

您可以使用
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)]);
找到答案是

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

找到答案是

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

那很好

此更新是针对多行还是单个项目?什么是
$skuCounts
?此更新是针对多行还是单个项目?什么是
$skuCounts