我正在尝试使用查询获取表的最大列值:
$today = Carbon::today();
$o_no = Prev_order::whereDate('date_time',"=", $today)->max('ord_no');
if($o_no){
$o_no = $o_no + 1;
}
else{ $o_no = 1; }
$orders = order::where('table_no', $request->table_no)
->where('dish', $request->dname)
->first();
if($orders != null)
{
$qty = $orders->dish_qty + $request->dish_qty;
$data = [
'dish_qty' => $qty,
];
$orders = order::where('dish', $request->dname)->update($data);
}
return response()->json($todr);
但它没有在9之后给出最大值,意味着如果最大值为10则它给出的最大值为9 ......我没有确切地说出错误。 实际上每个提交按钮后增加值,即订单号。当我检查前一个最大值(订单号)时,我在其中添加了1并更新了新订单号。但是当值为10时,通常只将值加为10,当我检查max()函数时,它只给出最大值为9,确切错误。
答案 0 :(得分:0)
它只是意味着您首先从表中获取数据然后更新订单号。所以在这种情况下即使订单没有在数据库中发生变化,你也不会得到升级订单,这不是最大价值。否则请分享一些代码,这样有助于更好地理解。
我认为最大功能没有问题。如果您认为最大功能不正常,那么您可以尝试不同的查询。
DB :: table('orders') - > where('id',DB :: raw(“(从订单中选择max(id
))”)) - > get();
如果您使用的是Eloquent模型。
$ order = Orders :: whereRaw('id =(从订单中选择max(id
))') - > get();