当前位置: 首页 > 面试题库 >

Laravel:在哪里排序

万俟财
2023-03-14
问题内容

我正在使用SphinxSearch查询某些内容,并具有要使用MySQL查询的对象的ID。我的ID数组根据Sphinx给出的排名进行排序。因此,我想制作一个像这样的MySQL:

SELECT * FROM table WHERE id IN (1,17,2) 
ORDER BY FIELD(id,1,17,2)

我知道我可以做:

Table::whereIn('id', $ids)->get();

但是我无法获得订单。

我如何与Laravel以适当的方式做到这一点?


问题答案:

使用http://laravelsnippets.com/snippets/get-all-items-at-once-ordered-by-the-
current-order-of-ids-in-the-where-in-clause-
using中

找到的解决方案-雄辩

$ids = array(1,17,2);

$ids_ordered = implode(',', $ids);

$items = static::whereIn('id', $ids)
 ->orderByRaw("FIELD(id, $ids_ordered)")
 ->get();


 类似资料:
  • 问题内容: 目前,我正在Laravel上的一个项目上工作,但被卡住了。 现在我有这段代码: 但这会产生: 如何获得正确的“或”订单? 问题答案: 在文档中查看“ 参数分组” 部分: https://laravel.com/docs/master/queries#parameter- grouping 它说明了如何在WHERE子句中对条件进行分组。 应该是这样的:

  • 如何将以下查询转换为Laravel4雄辩ORM?

  • 我的客户通过订单订购了许多包裹。 我想退回包裹数量超过0且状态仅为成功的客户。但我不知道如何添加包裹状态的条件。目前,这份声明给了我一份有包裹的客户名单<代码>$customers=Customer::has('包裹','

  • 如果传入的请求是AJAX请求,则不会生成重定向。相反,带有422状态码的HTTP响应将返回到浏览器,其中包含验证错误的JSON表示。 这不管用!我试图通过ajax请求访问路由,它会重定向回来。 如果验证通过,代码将继续正常执行。但是,如果验证失败,将抛出一个Illumate\合同\验证\验证异常。自动捕获此异常,并生成重定向到用户先前的位置。验证错误甚至会自动Flink到会话! 现在我想知道lar

  • 问题内容: 我有PyCharm,正在四处寻找git.exe,以使用我的存储库进行设置。 git.exe的路径是什么? 问题答案: 如果您在Windows上使用GitHub,则git.exe可能不在您的PATH中,但是您可以在以下位置找到它:C:\Users\ \AppData\Local\GitHub\PortableGit_ \bin\git.exe 我的情况就是这样,在Windows 7 +

  • 问题内容: 跑步, 安装后,我看到它说 位置在哪里?我检查了 无处可寻。 问题答案: 在Windows上,我可以在找到它。您可以在这里找到Java目录结构