我有一个查询,其中数据库中的条目可能将end
日期设置为零。如何进行以下查询 - 我想选择所有这些事件:
a)开始日期早于今天,但结束日期设为零(0000-00-00 00:00:00
)
和
b)开始日期和结束日期在今天之后
到目前为止,我所有人都选择了今天之后的开始日期:
$eventsList = DB::table('events')
->where('start', '>', Carbon::now())
->get();
但是这会错过昨天开始但没有设定结束日期的那些。
编辑:我已使用orWhere
子句添加到查询中,但orWhere
导致其无法返回结果:
$eventsList = DB::table('events')
->where('start', '>', Carbon::now())
->orWhere(function($query)
{
$query->where('start', '<', Carbon::now())
->where('end', '=', '0000-00-00 00:00:00');
})
->get();
答案 0 :(得分:0)
我猜你正在寻找这样的东西:
DB::table('events')
->where(function($query)
{
$query->where('start', '>', Carbon::now())
->where('end', '>', Carbon::now())
}
->orWhere(function($query)
{
$query->where('start', '<', Carbon::now())
->where('end', '=', '0000-00-00 00:00:00');
})
->get();