Laravel 8 附加 Where 语句
whereBetween / orWhereBetween
whereBetween
方法验证字段值是否在给定的两个值之间:
$users = DB::table('users')
->whereBetween('votes', [1, 100])
->get();
whereNotBetween / orWhereNotBetween
whereNotBetween
方法用于验证字段值是否在给定的两个值之外:
$users = DB::table('users')
->whereNotBetween('votes', [1, 100])
->get();
whereIn / whereNotIn / orWhereIn / orWhereNotIn
whereIn
方法验证给定列的值是否包含在给定数组中:
$users = DB::table('users')
->whereIn('id', [1, 2, 3])
->get();
whereNotIn
方法验证给定列的值是否不存在给定的数组中:
$users = DB::table('users')
->whereNotIn('id', [1, 2, 3])
->get();
技巧:如果要在查询中添加大量整数绑定,则可以使用
whereIntegerInRaw
或whereIntegerNotInRaw
方法来大大减少内存使用。
whereNull / whereNotNull / orWhereNull / orWhereNotNull
whereNull
方法验证指定的字段必须是 NULL
:
$users = DB::table('users')
->whereNull('updated_at')
->get();
whereNotNull
方法验证指定的字段肯定不是 NULL
:
$users = DB::table('users')
->whereNotNull('updated_at')
->get();
whereDate / whereMonth / whereDay / whereYear / whereTime
whereDate
方法用于比较字段值与给定的日期(年月日):
$users = DB::table('users')
->whereDate('created_at', '1989-01-09')
->get();
whereMonth
方法可用于将字段值与一年中的特定月份进行比较:
$users = DB::table('users')
->whereMonth('created_at', '01')
->get();
whereDay
方法可用于将字段值与一个月中的几号进行比较:
$users = DB::table('users')
->whereDay('created_at', '09')
->get();
whereYear
方法用于比较字段值与指定的年份:
$users = DB::table('users')
->whereYear('created_at', '1989')
->get();
whereTime
方法用于比较字段值与指定的时间(时分秒):
$users = DB::table('users')
->whereTime('created_at', '=', '11:20:45')
->get();
whereColumn / orWhereColumn
whereColumn
方法用于比较两个字段的值是否相等:
$users = DB::table('users')
->whereColumn('first_name', 'last_name')
->get();
你也可以传入一个比较运算符:
$users = DB::table('users')
->whereColumn('updated_at', '>', 'created_at')
->get();
你也可以给 whereColumn
传递一个数组,他们之间会使用 and
运算符连接:
$users = DB::table('users')
->whereColumn([
['first_name', '=', 'last_name'],
['updated_at', '>', 'created_at'],
])->get();