laravel框架数据库操作、查询构建器、Eloquent ORM操(2)
当结果集中的数据过多时,可以通过分块的方式返回结果集,chunk函数第一个参数为分块的大小(以每块2个数据的方式返回结果集),第二个参数为回调函数,当其返回false时就停止结果集的返回:
DB::table('student')->chunk(2,function ($res){ foreach ($res as $user){ var_dump($user); if ($user->id >=1003) return false; } });
3.2、增删改查
//增加一条数据 DB::table('student')->insert(['name'=>'李four','sex'=>'男','age'=>22]); //增加多条数据 DB::table('student')->insert([ ['name'=>'wang五','sex'=>'女','age'=>21], ['name'=>'zhao六','sex'=>'女','age'=>20], ]); //删除数据 DB::table('student')->where('id','>=',1006)->delete(); //删除整个表 DB::table('student')->truncate(); //修改数据 DB::table('student')->where('id',1005)->update(['sex'=>'女','age'=>21]); //自增increment、自减decrement,默认增1 DB::table('student')->where('id',1005)->increment('age',2); //自增同时可以进行修改 DB::table('student')->where('id',1005)->increment('age',1,['sex'=>'女']); //查询指定字段 $res=DB::table('student')->select('name','age')->get();
3.3、查询条件
通过查询构建器的where方法可以添加数据库查询条件,where()
接收三个参数:字段名、操作符、值,操作符如果是'='可以省略,例如查询id>=1003的数据:
$res=DB::table('student')->where('id','>=',1003)->get();
也可以通过条件数组传入多个限制条件,比如查询id>=1003并且id<1005:
$res=DB::table('student')->where([ ['id','>=',1003], ['id','<',1005] ])->get();
通过orwhere()
来连接两个并列条件,例如查询id>=1003或者id<1002的数据:
$res=DB::table('student')->where('id','>=',1003)->orwhere('id','<',1002)->get();
whereBetween()
查询位于某个区间的数据:
$res=DB::table('student')->whereBetween('id',[1003,1006])->get();
当when()
来判断某个查询是否执行,例如当$order为true时,才会执行排序:
$order=false; $res=DB::table('student')->when($order,function ($query){ return $query->orderBy('age','desc'); //$order为true时才执行此语句 })->get();
3.4、排序、分组、限定
//orderBy对age字段升序 $res=DB::table('student')->orderBy('age','asc')->get(); //按照create_at字段进行时间排序 $res=DB::table('student')->latest('create_at')->get(); //分组 $res=DB::table('student')->groupBy('sex')->get(); //跳过一条数据后返回2条数据 $res=DB::table('student')->skip(1)->limit(2)->get();
内容版权声明:除非注明,否则皆为本站原创文章。