学习要点:
1.where 派生查询
本节课我们来开始学习数据库的构造器查询中 where 派生查询。
一.where 派生查询
1. orWhere()方法,可以通过连缀实现两个或以上的 or 条件查询;
//where() + orWhere 实现 or 条件查询
$users = DB::table('users')
->where('price', '>', 95)
->orWhere('gender', '女')
->toSql();
2. 通过闭包,我们还可以构建更加复杂的 orWhere 查询;
//orWhere()结合闭包查询
$users = DB::table('users')
->where('price', '>', '95')
->orWhere(function ($query) {
$query->where('gender', '女')
->where('username', 'like', '%小%');
})->toSql();
3. whereBetween()可以实现区间查询,比如价格在一个区间内的用户;
//whereBetween 查询区间价格 60~90 之间
$users = DB::table('users')->whereBetween('price', [60, 90])->toSql();
PS:这里还支持相关三种:whereNotBetween/orWhereBetween/orWhereNotBetween;
4. whereIn()可以实现数组匹配查询,比如匹配出数组里指定的数据;
//whereIn 查询数组里匹配的数值
$users = DB::table('users')->whereIn('id', [20,30,50])->toSql();
PS:这里还支持相关三种:whereNotIn/orWhereIn/orWhereNotIn;
5. whereNull()可以查询字段为 Null 的记录;
//whereNull 查询字段值为 Null 的记录
$users = DB::table('users')->whereNull('uid')->toSql();
PS:这里还支持相关三种:whereNotNull/orWhereNull/orWhereNotNull;
6. whereDate()可以查询指定日期的记录;
//whereYear 查询指定日期的记录,或大于
$users = DB::table('users')->whereDate('create_time', '2018-12-11')->toSql();
PS:这里还支持相关四种:whereYear/whereMonth/whereDay/whereTime,支持 or 前缀;
PS:三个参数支持大于小于之类的操作 orWhereDate('create_time','>', '2018-12-11')