【问题标题】:Laravel Select Row with Unique columnLaravel 选择具有唯一列的行
【发布时间】:2019-11-04 16:12:41
【问题描述】:

我有一个数据库如下:

id, shop, order_number, Price
1,  google, 11, 20
2,  apple, 12, 20
3, google, 13, 20
4, google, 11, 20,
5, google, 11 , 20

如果我在 laraval 中使用以下命令:

Order::where('shop','=','google')->orderBy('id','desc')->get()->toArray();

它将完美地向我显示商店是 google 的结果。

但是,我只想返回 order_number 的唯一结果,并且 shop 是 google。它应该返回以下结果:

1,  google, 11, 20
3, google, 13, 20

我尝试使用以下方法:

Order::distinct()->where('shop','=','google')->orderBy('id','desc')->get(['id,shop,order_number,price'])->toArray();

但它似乎不起作用。

【问题讨论】:

    标签: php mysql laravel-5


    【解决方案1】:

    试试这个查询:

    Order::distinct()
    ->select('id','shop','order_number','price') //if you are selecting all column no need to write select
    ->where('shop','=','google')
    ->orderBy('id','desc')
    ->groupBy('order_number')
    ->get()
    ->toArray();
    

    【讨论】:

      【解决方案2】:

      你的语法错误:QueryBuilder get() 需要一个列数组,所以它应该是这样的:

      Order::distinct()->where('shop','=','google')->orderBy('id','desc')->get(['id','shop','order_number','price'])->toArray();
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-12-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-06-17
        • 1970-01-01
        • 2017-06-18
        • 2021-07-04
        相关资源
        最近更新 更多