ThinkPHP

avatar

聚合查询

1.使用count()方法,可以求出所查询数据的数量

1
2
$result=Db::name('student')->count();
return $result;

2.count()可以指定id,比如有空值的ssex,不会计算数量

1
2
$result=Db::name('student')->count('ssex');
return $result;

3.使用max()方法,求出所查询数据字段的最大值

1
2
$result=Db::name('student')->max('sage');
return $result;

4.min()方法与max()一样

1
2
$result=Db::name('student')->min('sage');
return $result;

5.使用avg()方法,求平均值

1
2
$result=Db::name('student')->avg('sage');
return $result;

6.使用sum()方法,求总和

1
2
$result=Db::name('student')->sum('sage');
return $result;

子查询

1.使用fetchSql()方法,可以设置不执行SQL,而返回SQL语句,默认true

1
2
$result=Db::name('student')->fetchSql()->select();
return $result;

运行结果
1
SELECT * FROM `student`

2.使用buidSql()方法,也是返回SQL语句,但是不需要执行select()

1
2
$result=Db::name('student')->buildSql();
return $result;

运行结果
1
( SELECT * FROM `student` )

3.闭包方式执行子查询

1
2
3
4
$result=Db::name('one')->where('id','in',function ($query){
$query->name('two')->field('uid')->where('gender','男');
})->select();
return $result;

原生查询

1.使用query()方法,进行原生SQL查询,适用于读取操作,SQL错误返回false

1
2
$result=Db::query('select * from student');
return json($result);

2.使用execute()方法,进行原生SQL更新写入等,SQL错误返回false
1
2
$result=Db::execute('update student set sname="硬币哥" where sno=18008001');
return json($result);