集合查询生成器 - orderBy 多个值

Posted

技术标签:

【中文标题】集合查询生成器 - orderBy 多个值【英文标题】:Collection Query Builder - orderBy multiple values 【发布时间】:2019-05-26 11:24:49 【问题描述】:

在我的 eloquent 模型中,我有一个位置行。它包含 5 个可能的答案,例如:

酒店

住宿

其余值

我想执行orderBy 并希望它们按此顺序列出。有没有办法用orderBy 实现它?比如:

People::orderBy('location', ['Hotel, 'Library', 'Accommodation']);

实现这一目标的最佳方法是什么?

【问题讨论】:

位置行是什么意思?您能否再解释一下您的表结构(使用示例数据和列名)? 酒店、住宿、图书馆为数据值,location为表列名 【参考方案1】:

因此,您可以通过以下方式实现:

People::orderByRaw("FIELD(location , 'Hotel, 'Library', 'Accommodation') ASC") 

当然,你可以选择 ASC 或 DESC。

【讨论】:

以上是关于集合查询生成器 - orderBy 多个值的主要内容,如果未能解决你的问题,请参考以下文章

按组排序(查询生成器)

如何使用 LIKE 关键字和在 laravel 查询生成器中传递变量来制作自定义 orderBy 或 DB::raw(FIELD())

无法在报表生成器中选择多个值

为 orderby 生成 sql 查询的方法是不是在 tiny_tds 0.2.3 和 0.4.3 之间更改

Laravel 查询生成器 order by 不适用于左连接

基于一个查询生成多个类似的报告 - MS Access