我试图获取一些表的记录,该表有一个默认值为NULL的列'UpdateDate'。我需要检查是否存在“UpdateDate”不是今天或“UpdateDate”为NULL的记录。我构建的查询如下:
DB::table('Users')
->where('id', '=', '10')
->where(function($query) {
$query->where('UpdateDate','<>',date("Y-m-d"))->orWhere('UpdateDate','is','NULL'); })
->exists()
它没有按预期工作。我应该如何修改它?感谢。
答案 0 :(得分:2)
将您的查询更改为此
DB::table('Users')
->where('id', '=', '10')
->where(function($query) {
$query->where('UpdateDate','<>', date("Y-m-d"))
->orWhereNull('UpdateDate');
})
->exists();
如果您将UpdateDate
date
作为数据类型。
如果您有timestamp
或datetime
为数据类型,请更改为此
DB::table('Users')
->where('id', '=', '10')
->where(function($query) {
$query->whereBetween('UpdateDate',[date("Y-m-d 00:00:00"), date("Y-m-d 23:59:59")])
->orWhereNull('UpdateDate');
})
->exists();