我是否有办法检索仅一个记录来自集合中date
值的same
记录?
我的记录是这样的,
id | date | event_name | type
----------------------------------------
1 | 2016-01-23 | event 1 | event 1
2 | 2016-01-23 | event 1 | event 2
3 | 2016-03-15 | event 2 | event 1
4 | 2016-03-15 | event 2 | event 2
正如您所看到的,有相同日期的记录,我想在同一日期记录中获取仅一个。所以我希望得到,
2016-01-23, event 1
2016-03-15, event 2
我试过了,
$events = events::select( events.*',
DB::raw('(select date from events where date = events.date) as events'))
->get();
但不幸的是它不起作用。它从
给我一个empty
数组
dd(var_dump($events->toArray()));
任何想法,请帮忙吗?
答案 0 :(得分:2)
如果您只想为表格中的每个冗余日期值获得一个结果,请在查询中使用DISTINCT
关键字。
如果您使用的是MySql,请尝试此操作:
select DISTINCT date from events where date IS NOT NULL
注意: DISTINCT也将null
值视为一个独特的候选者。因此,对check
条款null
where
建议{/ 1}}。
答案 1 :(得分:1)
实际查询:
SELECT * FROM events GROUP BY date
对于Laravel:
$events = DB::table('events')->groupBy('date')->get();
答案 2 :(得分:1)
如果使用Eloqunt,您可以使用内置的groupBy
方法:
Events::groupBy('browser')->get();