标签:like max min src 数组传参 update 一个 option 求和
value
方法查询指定字段的值$name = ‘bigcola‘;
$email = DB::table(‘users‘)->where(‘name‘,$name)->value(‘email‘);
exists
方法判断某个字段值是否存在$exists = DB::table(‘users‘)->where(‘name‘,$name)->exists();
如果存在,返回true
,否则返回false
。还有一个与之相对的方法doesntExist()
pluck
方法构建关联数组$users = DB::table(‘users‘)->where(‘id‘, ‘<‘, 10)->pluck(‘name‘,‘id‘); //第一个参数是值 第二个是键
chunk
方法将查询结果分块处理有时候我们从数据库返回的结果集比较大,一次性进行处理可能会超过PHP内存限制,这时就可以借助chunk
方法将其分割成多个组块处理
$names = [];
DB::table(‘users‘)->orderBy(‘id‘)->chunk(5, function ($users) use (&$names) {
foreach ($users as $user) {
$names[] = $user->name;
}
});
$num = DB::table(‘users‘)->count(); # 计数
$sum = DB::table(‘users‘)->sum(‘id‘); # 求和
$avg = DB::table(‘users‘)->avg(‘id‘); # 平均值
$min = DB::table(‘users‘)->min(‘id‘); # 最小值
$max = DB::table(‘users‘)->max(‘id‘); # 最大值
使用where
方法进行简单查询 ,第一个参数字段名,第二个参数运算符,第三个参数比较值
DB::table(‘posts‘)->where(‘views‘,0)->get();
DB::table(‘posts‘)->where(‘views‘,<>,0)->get();
DB::table(‘posts‘)->where(‘views‘,>,0)->get();
模糊查询
DB::table(‘posts‘)->where(‘title‘,‘like‘,‘laravle学院%‘)->get();
多个where条件
DB::table(‘posts‘)->where(‘id‘, ‘<‘, 10)->where(‘views‘, ‘>‘, 0)->get();
数组传参
DB::table(‘posts‘)->where([
[‘id‘, ‘<‘, 10],
[‘views‘, ‘>‘, 0]
])->get();
通过orWhere方法实现
DB::table(‘posts‘)->where(‘id‘, ‘<‘, 10)->orWhere(‘views‘, ‘>‘, 0)->get();
多个or查询也可以通过多个orWhere
方法连接
通过使用whereBetween
实现between查询
DB::table(‘users‘)->whereBetween(‘id‘,[5,10])->get();
与之相反的有 whereNotBetween
通过whereIn实现
DB::table(‘users‘)->whereIn(‘id‘,[1,5,6])->get();
whereIn
的第二个参数不能为空数组,否则会报错,与之相对有whereNotIn
通过whereNull
实现
DB::table(‘users‘)->whereNull(‘created_at‘)->get();
与之相对有whereNotNull
DB::table(‘posts‘)->whereYear(‘created_at‘, ‘2018‘)->get(); # 年
DB::table(‘posts‘)->whereMonth(‘created_at‘, ‘11‘)->get(); # 月
DB::table(‘posts‘)->whereDay(‘created_at‘, ‘28‘)->get(); # 一个月的第几天
DB::table(‘posts‘)->whereDate(‘created_at‘, ‘2018-11-28‘)->get(); # 具体日期
DB::table(‘posts‘)->whereTime(‘created_at‘, ‘14:00‘)->get(); # 时间
这几个方法同时还支持 orWhereYear
、orWhereMonth
、orWhereDay
、orWhereDate
、orWhereTime
。
字段之间比较
DB::table(‘posts‘)->whereColumn(‘updated_at‘, ‘>‘, ‘created_at‘)->get();
DB::table(‘users‘)
->where(‘options->language‘, ‘en‘)
->get();
如果属性字段是个数组,还支持通过 whereJsonContains
方法对数组进行包含查询:
DB::table(‘users‘)
->whereJsonContains(‘options->languages‘, ‘en_US‘)
->get();
DB::table(‘users‘)
->whereJsonContains(‘options->languages‘, [‘en_US‘, ‘zh_CN‘])
->get();
参数分组
标签:like max min src 数组传参 update 一个 option 求和
原文地址:https://www.cnblogs.com/bigcola/p/13373263.html