ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
#查询构造器 ## select **从数据表中取得所有的数据列** ``` Db::table('user')->get(); ``` **取得指定的字段** ``` Db::table('user')->get(['username','age']); ``` **从数据表中取得单一数据列** ``` Db::table('user')->where('username','向军')->first(); //取出指定主键的值 Db::table('user')->first(2); ``` **从数据表中取得单一数据列的单一字段** ``` Db::table('user')->where('username', '向军')->pluck('username'); //返回第一条记录的 username 字段值 ``` **取得单一字段值的列表** ``` Db::table('user')->lists('username'); //满足条件记录的所有username字段 [ [0] => admin [1] => hdxj ] ``` **返回一维数组,第一个字段做为键名使用,第 2 个字段做为键值** ``` Db::table('user')->lists('id,username'); //id 字段做为键名使用 [ [1] => admin [2] => hdxj ] ``` **多个字段返回二维数组,第一个字段值做为键名使用,其余字段做为键值** ``` Db::table('user')->lists('id,username,age'); //返回值如下 [ [1] => [ [id] => 1 [username] => admin [age] => 22 ] [2] => [ [id] => 2 [username] => hdxj [age] => 67 ] ] ``` **指定查询结果字段** ``` Db::table('user')->field('username AS name,age')->get(); 或 Db::table('user')->field(['username','age'])->get(); ``` **根据某个字段查询** ``` Db::table('user')->getByName("hdphp"); //返回一条记录 ``` **增加查询子句到现有的查询中** ``` $db = Db::table('user')->field('username AS name','age','id'); $db->where('id','>',2)->get(); ``` **使用 where 及运算符** ``` Db::table('user')->where('id','>',1)->get(); Db::table('user')->where('id','>',1)->where('id','<',10)->get(); ``` **使用andwhere** ``` Db::table('user')->where('id','>',1)->andwhere('id','<',10)->get(); ``` **使用orwhere** ``` Db::table('user')->where('id','>',1)->orwhere('id','<',10)->get(); ``` **使用 logic 条件连接符** ``` Db::table('user')->where('id','>',1)->logic('or')->where('id','<',22)->get(); ``` **预准备whereRaw** ``` Db::table('user')->whereRaw('age > ? and username =?', [1,'admin'])->get(); ``` **使用 whereBetween** ``` Db::table('user')->whereBetween('id',[10,30])->get(); ``` **使用 WhereNotBetween** ``` Db::table('user')->whereNotBetween('id',[10,30])->get(); ``` **使用 WhereIn** ``` Db::table('user')->whereIn('id',[2,3,9])->get(); ``` **使用 WhereNotIn** ``` Db::table('user')->whereNotIn('id',[3,5,6])->get(); ``` **使用 WhereNull** ``` Db::table('user')->whereNull('username')->get(); ``` **使用 WhereNotNull** ``` Db::table('user')->whereNotNull('id')->get(); ``` **指定条件关系** ``` Db::table('user')->where('id','>',1)->logic('AND')->whereBetween('id',[1,10])->get(); ``` **排序(Order By)** ``` Db::table('user')->orderBy('id','DESC')->get(); Db::table('user')->orderBy('id','DESC')->orderBy('rank','ASC')->get(); //多个排序条件 ``` **分组GROUP BY** ``` Db::table('user')->groupBy('age')->get(); ``` **分组筛选HAVING** ``` Db::table('user')->groupBy('age')->having('count(sex)','>',2)->get(); ``` **取部分数据LIMIT** ``` Db::table('user')->limit(2)->get(); Db::table('user')->limit(2,5)->get(); ``` ##聚合 ``` Db::table("user")->count('id'); Db::table("user")->max('id'); Db::table("user")->min('id'); Db::table("user")->avg('id'); Db::table("user")->sum('id'); ``` ##JOIN **多表关联INNER JOIN** ``` Db::table('user') ->join('class','user.cid','=','class.cid') ->join('contacts','user.id','=','contacts.uid') ->get() ``` **多表关联LEFT JOIN** ``` Db::table('user')->leftJoin('class','user.cid','=','class.cid')->get(); ``` **多表关联RIGHT JOIN** ``` Db::table('user')->rightJoin('class','user.cid','=','class.cid')->get(); ```