php - 如何在 laravel 中使用 sum 运算符选择案例
问题描述
我有这个查询,当它们有一个活跃的id(如id_test = 1 note_test = 11)时,来自不同列的值求和,如果id为0,它有一个case语句
这是查询
select
case when id_test1 = 1 then note_test1 else 0 end +
case when id_test2 = 1 then note_test2 else 0 end +
case when id_test3 = 1 then note_test3 else 0 end +
case when id_test4 = 1 then note_test4 else 0 end +
case when id_test5 = 1 then note_test5 else 0 end +
case when id_test6 = 1 then note_test6 else 0 end +
case when id_test7= 1 then note_test7 else 0 end as total_weighted
from rp_student where id = 1
这是我在 laravel 中的查询
$weighted= DB::table('rp_student')
->select(DB::raw('case when id_test1 = 1 then note_test1 else 0 end +
case when id_test2 = 1 then note_test2 else 0 end +
case when id_test3 = 1 then note_test3 else 0 end +
case when id_test4 = 1 then note_test4 else 0 end +
case when id_test5 = 1 then note_test5 else 0 end +
case when id_test6 = 1 then note_test6 else 0 end +
case when id_test7= 1 then note_test7 else 0 end as total_weighted'))
->where('id','=',1);
它没有给我任何回报
解决方案
您的查询最后缺少所需->get()
的内容。您当前看不到值的原因是查询尚未实际执行。
get 方法返回一个包含结果的 Illuminate\Support\Collection,其中每个结果都是 PHP stdClass 对象的一个实例。您可以通过将列作为对象的属性访问来访问每一列的值:
推荐阅读
- c# - 将带有 TimeSpan 属性的 JSON 对象传递给 C# WebAPI
- android - 如何解决公共开放乐趣get()毕加索的太多争论!在 com.squareup.picasso.Picasso 中定义
- angular - Angular Material 对话框显示两次
- sql-server - SQL Server XQuery 路径中的备用节点?
- apache - 编辑 .htaccess 后,Vuejs 应用程序仍会出现 404 页面
- python - 有没有办法等待一个标签元素,根据它们在硒中的href值,它可能是两个之一?
- html - 为什么 img 元素在 flexbox 内部的行为不同?
- node.js - 数据存储不删除实体
- swift - 如何在不使用 onDelete(perform:) 的情况下从子视图中删除 SwiftUI 中的列表项?
- python - 如何解压缩列表列表中的单项元组