知识笔记(七十三)———链式语句中alias和order用法

alias用于设置当前数据表的别名,便于使用其他的连贯操作例如join方法等。

示例:

Db::table('think_user')->alias('a')->join('__DEPT__ b ','b.user_id= a.id')->select();

最终生成的SQL语句类似于:

SELECT * FROM think_user a INNER JOIN think_dept b ON b.user_id= a.id

v5.0.2+版本开始,可以传入数组批量设置数据表以及别名,例如:

Db::table('think_user')->alias(['think_user'=>'user','think_dept'=>'dept'])->join('think_dept','dept.user_id= user.id')->select();

最终生成的SQL语句类似于:

SELECT * FROM think_user user INNER JOIN think_dept dept ON dept.user_id= user.id
order方法属于模型的连贯操作方法之一,用于对操作的结果排序。

用法如下:

Db::table('think_user')->where('status=1')->order('id desc')->limit(5)->select();

注意:连贯操作方法没有顺序,可以在select方法调用之前随便改变调用顺序。

支持对多个字段的排序,例如:

Db::table('think_user')->where('status=1')->order('id desc,status')->limit(5)->select();

如果没有指定desc或者asc排序规则的话,默认为asc。

如果你的字段和mysql关键字有冲突,那么建议采用数组方式调用,例如:

Db::table('think_user')->where('status=1')->order(['order','id'=>'desc'])->limit(5)->select(); 

V5.0.17+版本开始,当你的order排序中使用了SQL函数的时候,请使用orderRaw方法替代order,例如:

Db::table('think_user')->where('status=1')->orderRaw('rand()')->limit(5)->select(); 

你可能感兴趣的:(笔记,sql,数据库,烦)