Laravel ORDER BY

问题描述 投票:0回答:1

在Laravel中,我们通过多个字段对记录进行排序(ORDER BY)时,是否有可能优先考虑我们要对其排序的字段之一。

例如:是否可以优先使用电子邮件?

User::orderBy('name', 'DESC')
->orderBy('email', 'ASC')
->get();
php laravel laravel-5 eloquent laravel-4
1个回答
0
投票

是,->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"

© www.soinside.com 2019 - 2024. All rights reserved.