一、聚合查询
- 使用 count() 方法,查询数据的数量
Db::name('user')->count();
Db::name('user')->count('uid');
- max() 和 min() 方法,查询字段的最大/小值
Db::name('user')->max('price');
Db::name('user')->min('price');
- avg() 查询字段的平均值
Db::name('user')->avg('price');
- sum() 查询字段的总和
Db::name('user')->sum('price');
二、子查询
- fetchSql() 不执行SQL,返回SQL语句,默认 true
Db::name('user')->fetchSql(true)->select();
- buildSql() 返回Sql语句,不需要执行 select(),且有括号
Db::name('user')->buildSql(true);
- 案例:
$subQuery = Db::name('two')->field('uid')->where('gender','男')->buildSql(true);
$result = Db::name('one')->where('id','exp', 'in '.$subQuery)->select();
- 使用闭包的方式执行子查询
$result = Db::name('one')->where('id','in',function($query){
$query->name('two')->where('gender','男')->field('uid');
})->select();
三、原生查询
- 使用 query() 方法,进行原生 SQL 查询,适用于读取操作,SQL 错误返回 false
Db::query('select * from tp_user');
- execute() ,原生 SQL 更新写入等, SQL 错误返回 false
Db::execute('update test_user set name = 'wan' where id = 19');
|