【发布时间】:2013-11-02 20:16:57
【问题描述】:
我在 MYSQL 中的产品视图表中做了一些计算,所以我列出了这些 id 作为产品参考 id。
$referenceIds = viewTable::orderBy('score', 'DESC')->lists('product_id');
我想从这些参考 ID 中获取产品。
$products = Product::whereIn('id', $rederenceIds);
产品内容是正确的,但是顺序不对,如何通过引用id加载产品订单,我知道我可以在MySQL中使用ORDER BY FIELD(id,' . $fields . '),但是我想了解Laravel的方式,希望不要使用ORDER BY FIELD 命令,因为它似乎浪费了很多数据库效率。
【问题讨论】:
-
作为最终结果,您是要订购产品还是参考 ID?
-
orderBy(DB::raw('FIELD(id, ' . implode(',', $productStarScoreIds) . ')'), 'ASC'),这是解决方案,但如果可能的话,我想找出 Laravel 解决方案。