我有一个数据库如下:
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中使用follow命令:
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();
但似乎不起作用。
答案 0 :(得分:0)
您的语法错误:QueryBuilder get()需要一个列数组,因此应如下所示:
Order::distinct()->where('shop','=','google')->orderBy('id','desc')->get(['id','shop','order_number','price'])->toArray();
答案 1 :(得分:0)
尝试此查询:
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();