当表 laravel 5.8 中没有数据时,null 返回总和而不是 0

Posted

技术标签:

【中文标题】当表 laravel 5.8 中没有数据时,null 返回总和而不是 0【英文标题】:null returned intead of 0 on sum when not data in table laravel 5.8 【发布时间】:2020-05-19 11:04:35 【问题描述】:

我的查询

 $summary['total_cash'] = DB::table('wallets')
                                  ->select(DB::raw('SUM(amount) as total_cash'))
                                  ->where('payment_details','affiliate product purchase commission')
                                  ->where('user_id',$group_id)
                                  ->first()->total_cash;

我得到的错误 https://prnt.sc/sjllwv

这些表中没有可用的数据

我要返回0

如有错别字请忘记

谢谢

【问题讨论】:

请显示您想要返回的内容。您的查询返回多个列,因此 0 没有意义。我认为你真的应该在应用程序中处理这个问题。 标题好像和你贴的代码和错误没有任何关系 @iainn ,查询已编辑,请立即查看 where('payment_details','affiliate product purchase commission') 是错误的。 payment_details 是否必须具有这 4 个值之一?如果是这样,请使用whereIn 方法。 @AkhtarMunir 是的,但我已更改为 0 【参考方案1】:

如果您的数据库中默认金额字段为 NULL,请尝试此操作

$summary['total_cash'] = DB::table('wallets')
                         ->select(DB::raw('coalesce(SUM(amount),0) as total_cash'))
                         ->where('payment_details','affiliate product purchase commission')
                         ->where('user_id',$group_id)
                         ->first()->total_cash

【讨论】:

以上是关于当表 laravel 5.8 中没有数据时,null 返回总和而不是 0的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 5.8刀片,从嵌套对象错误中获取值

在 laravel 5.8 中连接到第二个数据库时出错

使用 Laravel 5.8 对没有数据库(计数)的 API 响应进行分页

如何在关系表laravel 5.8中解码Json数据

Summernote 所见即所得编辑器无法使用 Laravel 5.8 正确呈现数据

当我按下表格中的按钮时如何设置输入值?这里我使用 laravel 5.8