阅读(554) (7)

Laravel 8 附加 Where 语句

2021-07-07 09:14:26 更新

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(); 

技巧:如果要在查询中添加大量整数绑定,则可以使用 whereIntegerInRawwhereIntegerNotInRaw 方法来大大减少内存使用。

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();