如何按多列对 Laravel 查询构建器结果进行排序?

新手上路,请多包涵

我想使用 Laravel Eloquent 中的方法 orderBy() 对 Laravel 4 中的多个列进行排序。查询将使用 Eloquent 生成,如下所示:

 SELECT *
FROM mytable
ORDER BY
  coloumn1 DESC, coloumn2 ASC

我怎样才能做到这一点?

原文由 Sophy 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 680
2 个回答

只需根据需要多次调用 orderBy() 。例如:

 User::orderBy('name', 'DESC')
    ->orderBy('email', 'ASC')
    ->get();

产生以下查询:

 SELECT * FROM `users` ORDER BY `name` DESC, `email` ASC

原文由 rmobis 发布,翻译遵循 CC BY-SA 3.0 许可协议

像这样使用 order by:

 return User::orderBy('name', 'DESC')
    ->orderBy('surname', 'DESC')
    ->orderBy('email', 'DESC')
    ...
    ->get();

原文由 Hedayatullah Sarwary 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题