MAX()函数没有laravel的QueryBuilder
问题描述:
我尝试使用查询来获取表中的最大列值正常:MAX()函数没有laravel的QueryBuilder
$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,确切地说错误是什么。
答
它只是意味着你首先从表中获取数据,然后你正在更新订单号。所以在这种情况下,即使订单号在数据库中发生了变化,您也不会获得最高价值的升级订单号。否则,请分享一些代码,以便更好地理解。
我不认为最大功能有问题。如果你认为max函数工作不正常,那么你可以尝试不同的查询。 (''id',DB :: raw(“(从订单中选择max(id
))”)) - > get();
如果您使用Eloquent模型。 $ order = Orders :: whereRaw('id =(从订单中选择max(id
))') - > get();
试试这个参考链接:http://*.com/questions/23073214/laravel-query-builder-where-max-id –