当前位置: 首页 > 知识库问答 >
问题:

不同的顺序通过在一个雄辩的查询

许奇
2023-03-14

我在表格的列中有状态。状态为打开正在进行关闭放下重新打开。我还有一个datetime字段。我想根据日期对打开放下重新打开进行排序,它们将首先排序,但将基于日期和之后的继续状态,并且关闭始终在最后。

我已经做了什么

->orderByRaw("FIELD(status, 'Open', 'Re-open', 'Drop', 'On-going', 'Close') asc")
->orderBy('submitted_date', 'desc')

但这将导致状态的优先级,所以它将首先按状态排序,然后按日期排序。

我想要的输出

-----------------------------------------
|  submitted_date   |      status       |
-----------------------------------------
|     2019-12-05    |      Re-Open      |
-----------------------------------------
|     2019-12-06    |      Open         |
-----------------------------------------
|     2019-12-06    |      Drop         |
-----------------------------------------
|     2019-12-07    |      Open         |
-----------------------------------------
|     2019-12-04    |      Close        |
-----------------------------------------

原始mysql查询或雄辩的查询都可以。谢谢

共有1个答案

张炳
2023-03-14

我认为你应该能够通过以下几点来实现它。

->orderByRaw("FIELD(status, 'On-going', 'Close') asc")
->orderBy('submitted_date', 'desc')
 类似资料:
  • 我在我的Laravel项目中与雄辩的关系作斗争。 我的数据库中有一个“用户”表和一个“用户行”表。“用户行”表中有一个“用户id”字段,该字段与“用户”中的“id”字段相对应,属于典型的主-明细关系。 用户模型与用户线模型有很多关系。UserLine模型与用户模型具有belongsTo关系。 在我的应用程序中,我有一个包含多个用户行的用户表单。在表单提交期间,可以添加、更改或删除这些用户行。到目前

  • 我有以下2张表: 我想显示所有的汽车,由desc订购,但也由从透视表订购。修复的条目可以具有许多特定的。 所以如果是created_at,并且是created_at,但是修复中的在,我想显示BEFORE,因为关系是较新的。 我也不想从关系表中加载数据。 我试过以下方法: 和 ^此查询返回修复表中的所有项,即使字段为。我不能把他们分组。

  • 我在使用laravel雄辩的ORM时遇到了一个问题。 基本上,我正在获取与用户相关的帖子,以及他的评论,但是,我正在尝试集成某种分页(我一次只想取5个帖子)。 而使用跳过方法,我总是得到以下laravel错误: 方法skip不存在。 这是我实际使用的代码片段。 有人能给我任何帮助吗? 帐户模型检索与用户相关的帖子模型(关系),但是,我想一次只收到5个帖子,用于基于ajax的请求。

  • 问题内容: 我想写一个查询 或诸如此类 你能帮我么? 问题答案: 这应该工作: 从 MSDN : 在使用UNION,EXCEPT或INTERSECT运算符的查询中,仅在语句末尾才允许使用ORDER BY。仅当您在顶级查询中 而不是子查询中 指定UNION,EXCEPT和INTERSECT时,此限制才适用。 编辑 :强制您需要将顺序应用于外部查询的顺序。我已经向两个查询添加了一个常量值列。

  • 在我的应用程序中,我更新了从一对多到多对多的关系,我试图找出一种持久化关联功能的方法。 假设我有两个相关的表,例如狗和主人。如果我有一系列的主人,并且我正试图为这些主人获取一份狗的id列表,我应该如何雄辩地做到这一点? 这里也提出了类似的问题:https://laracasts.com/discuss/channels/laravel/getting-many-to-many-related-da

  • 因此,我试图获取查询中不同PID的数量,但返回的值是错误的。 这就是我试图做的: 返回值“2”的,而它应该返回的值应该是“1”。 作为解决办法,我正在这样做: 什么工作正常并返回“1” 是否有任何规则规定count和distinct不能位于同一查询上?我发现解决方案有点“沉重”,我想让原始查询工作起来:(