16. 链式查询方法.下
本节课我们来学习链式查询方法中的 limt()、page()、order()等查询。 一.limit
1. 使用limit()方法,限制获取输出数据的个数;
Db::name('user')->limit(5)->select();
2. 分页模式,即传递两个参数,比如从第3条开始显示5条limit(2,5);
Db::name('user')->limit(2, 5)->select();
3. 实现分页,需要严格计算每页显示的条数,然后从第几条开始;
//第一页
Db::name('user')->limit(0, 5)->select(); //第二页
Db::name('user')->limit(5, 5)->select();
二.page
1. page()分页方法,优化了limit()方法,无须计算分页条数;
三.order
1. 使用order()方法,可以指定排序方式,没有指定第二参数,默认asc;
Db::name('user')->order('id', 'desc')->select();
2. 支持数组的方式,对多个字段进行排序;
Db::name('user')->order(['create_time'=>'desc', 'price'=>'asc'])->select();
3. 使用orderRaw()方法,支持排序的时候指定MySQL函数; Db::name('user')->orderRaw('FIELD(username,"樱桃小丸子") DESC')->select();
//第一页
Db::name('user')->page(1, 5)->select(); //第二页
Db::name('user')->page(2, 5)->select();
四.group
1. 使用group()方法,给性别不同的人进行price字段的总和统计;
2. 也可以进行多字段分组统计;
五.having
1. 使用group()分组之后,再使用having()进行筛选;
Db::name('user')->fieldRaw('gender, SUM(price)') ->group('gender')->select();
Db::name('user')->fieldRaw('gender, SUM(price)') ->group('gender,password')->select();
$result = Db::name('user')
->fieldRaw('gender, SUM(price)')
->group('gender')
->having('SUM(price)>600')
->select();