我正在考虑如何编写此查询.我认为它可能涉及在ORDER BY声明中使用CASE,但我可以使用一些指导.
我有两列数据; 身份证和价格.当我订购价格ASC时,我的查询结果显示如下:
ID | 价格
3 | 150
1 | 200
3 | 205
2 | 210
2 | 230
3 | 270
1 | 300
2 | 340
3 | 500
我要做的是仍然按价格ASC订购,但略有不同.我也希望按ID进行分组.例如,我希望查询找到所有结果的最低价格,然后查找具有相同ID的所有其他记录,在ASC订单价格中列出.找到该ID的所有记录后,查询将查找所有其他剩余记录,再次找到最低价格,然后重复.因此,每次通过此循环时,结果池都会减少.对于上面的示例,结果将是:
ID | 价格
3 | 150
3 | 205
3 | 270
3 | 500
1 | 200
1 | 300
2 | 210
2 | 230
2 | 340
循环就像找到最低价格,找到具有相同ID的所有记录并按价格顺序列出,找到剩余结果的最低价格,查找具有相同ID的所有记录并按价格顺序列出,重复....
有任何想法吗?如果我没有充分解释,请告诉我.
我想知道是否可以从简单查询中自定义返回对象在分页结果中的顺序.响应顺序现在是分页信息,后跟"data"对象,其中包含我搜索过的模型.我想知道是否有可能扭转顺序,所以它的产品信息后跟某种分页对象.
我的查询是:
return Product::paginate(100);
Run Code Online (Sandbox Code Playgroud)
我的结果是:
{"total":466,"per_page":100,"current_page":1,"last_page":5,"from":1,"to":100,"data":[{"id":28,"account_id":5,"created_by_id":14,"type":"accessory","title":"Product #28","description":"D","max_per_order":1,"stock":3565,"created_at":"1998-04-18 00:00:00","updated_at":"1994-10-28 00:00:00","deleted_at":null},{"id":44,"account_id":5,"created_by_id":36,"type":"registration","title":"Product #44","description":"Z","max_per_order":10,"stock":13739,"created_at":"2014-04-20 00:00:00","updated_at":"1991-06-03 00:00:00","deleted_at":null}]}
Run Code Online (Sandbox Code Playgroud)
我希望结果是这样的:
[products: [{"id":28,"account_id":5,"created_by_id":14,"type":"accessory","title":"Product #28","description":"D","max_per_order":1,"stock":3565,"created_at":"1998-04-18 00:00:00","updated_at":"1994-10-28 00:00:00","deleted_at":null},{"id":44,"account_id":5,"created_by_id":36,"type":"registration","title":"Product #44","description":"Z","max_per_order":10,"stock":13739,"created_at":"2014-04-20 00:00:00","updated_at":"1991-06-03 00:00:00","deleted_at":null},{"id":57,"account_id":5,"created_by_id":40,"type":"accessory","title":"Product #57","description":"Z","max_per_order":4,"stock":19376,"created_at":"1970-03-27 00:00:00","updated_at":"2001-01-01 00:00:00","deleted_at":null}], pagination: {"total":466,"per_page":100,"current_page":1,"last_page":5,"from":1,"to":100}]
Run Code Online (Sandbox Code Playgroud)
我该怎么做这样的事情?编写自己的分页代码会更容易吗?