我有如下代码:
$sendto_hikkou1 = Guest::where('mypage_id', $mypage)
->where('snd_to_hikkou_id', 1)->count();
$sendto_hikkou2 = Guest::where('mypage_id', $mypage)
->where('snd_to_hikkou_id', 2)->count();
$sendto_hikkou3 = Guest::where('mypage_id', $mypage)
->where('snd_to_hikkou_id', 3)->count();
如何在一个查询中编写此内容?
答案 0 :(得分:2)
使用groupBy
来获取一个查询中的所有计数,如下所示
$sendto_hikkou = Guest::where('mypage_id', $mypage)
->whereIn('snd_to_hikkou_id',[1,2,3])
->groupBy('snd_to_hikkou_id')
->select('snd_to_hikkou_id',DB::raw("count(*) as hikkou_count"))
->get();
答案 1 :(得分:0)
您将不得不使用DB Facade而不是模型。 选择id字段,然后count,按id分组,然后获取。 我目前无法测试!
答案 2 :(得分:0)
这是我找到的解决方案,但是@ C2486的答案要好得多。
modelBuilder.Entity<Category>().HasData(
new Category[]
{
new Category() { Id = 1, Name = "Category A" },
new Category() { Id = 2, Name = "Category B has a new name" },
// Category C has been merged with Category B
});