laravel - 如何用 Laravel elequoent 编写这个 SQL 查询
问题描述
我在laravel中试过这个,但它不起作用。当我直接在 PHPMyAdmin 上使用它时,我无法让它工作
SELECT service,
count(*) as total_count,
sum(if(status ='Successful',1,0)) as successful_count,
sum(if(status ='Failed',1,0)) as failed_count
FROM `wallet_ledgers`
WHERE operator = "-"
AND user_id = 5
group by service
这是所需的输出表格的外观
解决方案
您可以使用DB::raw
$result = DB::table('wallet_ledgers')
->select(DB::raw("service, count(*) as total_count, sum(if(status ='Successful',1,0)) as successful_count, sum(if(status ='Failed',1,0)) as failed_count"))
->where([
[ 'operator', '=', '-'],
['user_id', '=', '5'],
])
->groupBy('service')
->get();
推荐阅读
- javascript - 在通过构造函数进行泛型初始化期间类型未正确断言
- go - golang 中的动态数据库模型
- html - 类型范围的 React 输入上的自定义样式
- node.js - 防止 Docker/Azure 在 Node js/Express 服务器上的 https 而不是 http 上加载资源
- java - 是什么导致 MariaDB 中的日期/时间字段为空或 0
- reactjs - 为我在 digitalocean 空间上托管的 React SPA 的每条可能路线加载 index.html
- angular - 无法从 ng2-tooltip-directive 工具提示手动复制数据
- vue.js - 如何在 vue 中使用 sortable.js 创建嵌套的拖放菜单结构
- android - Xamarin android:找不到资源 id/button_img_del(又名 com.companyname.www:id/button_img_del)。?
- elasticsearch - 使用logstash获取第三行并将其作为列放在elasticsearch中的可能方法是什么?