在Laravel中,我们通过多个字段对记录进行排序(ORDER BY)时,是否有可能优先考虑我们要对其排序的字段之一。
例如:是否可以优先使用电子邮件?
User::orderBy('name', 'DESC')
->orderBy('email', 'ASC')
->get();
是,->orderBy()
是按顺序应用的,因此您只需更改->orderBy()
的顺序即可更改最先排序的字段。
您可以通过转储生成的sql来自己查看:
dd(User::orderBy('name', 'DESC')->orderBy('email', 'ASC')->toSql());
DD的输出:"select * from `users` order by `name` desc, `email` asc"
dd(User::orderBy('email', 'ASC')->orderBy('name', 'DESC')->toSql());
DD的输出:"select * from `users` order by `email` asc, `name` desc"