order
方法用于对操作的结果排序或者优先级限制。
用法如下:
Db::table('user')->where('status', 1)->order('id', 'desc')->limit(5)->select();
SELECT * FROM `user` WHERE `status` = 1 ORDER BY `id` desc LIMIT 5
如果没有指定
desc
或者asc
排序规则的话,默认为asc
。
支持使用数组对多个字段的排序,例如:
Db::table('user')->where('status', 1)->order(['order','id'=>'desc'])->limit(5)->select();
最终的查询SQL可能是
SELECT * FROM `user` WHERE `status` = 1 ORDER BY `order`,`id` desc LIMIT 5
对于更新数据或者删除数据的时候可以用于优先级限制
Db::table('user')->where('status', 1)->order('id', 'desc')->limit(5)->delete();
生成的SQL
DELETE FROM `user` WHERE `status` = 1 ORDER BY `id` desc LIMIT 5
如果你需要在order
方法中使用mysql函数的话,必须使用下面的方式:
Db::table('user')->where('status', 1)->orderRaw("field(name,'thinkphp','onethink','kancloud')")->limit(5)->select();