[TOC]

从数据表中取得所有的数据列

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
           ]
]

like模糊查询

第三个参数为null时,查询忽略

Db::table( 'rule' )->where( 'name','like', "%后盾人%" )->get()

指定查询结果字段

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 及运算符

第二个参数为null时,查询忽略

Db::table('user')->where('id','>',1)->get();
Db::table('user')->where('id','>',1)->where('id','<',10)->get();

where以数组形式传参

$where=[
    ['id','>',3],
    ['status',0]
];
Db::table('user')->where($where)->get();

whereNotEmpty内容为空时不设置

当查询参数为空时忽略本次条件设置,以下代码的where条件不会添加到SQL中。

Db::table('user')->whereNotEmpty('username','')->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();

聚合

max

Db::table("user")->max('id');

min

Db::table("user")->min('id');

avg

Db::table("user")->avg('id');

sum

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