2016-02-03 3 views
1
id name amount 
1 A  12 
2 B  10 
3 A  24 
4 C  39 
5 B  25 
6 B  23 
7 C  15 

я хочу, чтобы получить данные, как этогоданные групп Набора с OrderBy в Sql

id name amount 
1 A  12 
2 A  24 
3 B  10 
4 B  23 
5 B  25 
6 C  15 
7 C  39 

я хочу, чтобы получить данные, как это - набор А с количеством восходящего и В с восходящим количество и C , как сделать это я попробовал этот код, но он возвращает только 3 значения (я использую Laravel)

DB::table('person')    
->groupBy('name') 
->orderBy('amount','ASC') 
->get(); 

ответ

1

вы можете использовать orderBy() много времени в любом запросе

DB::table('person') 
->orderBy('amount','ASC') 
->orderBy('name', 'ASC') 
->get(); 
+0

не работает. Только возвратите одно значение A, B, C. Только 3 записи – sasy

+0

удалите 'groupBy' @sasy – Junaid

+0

@Junaid благодарит за предложение. отредактированный – Afsar

0

Не используйте группу by.Use only orderby. Сначала имя, а не количество. Это будет работать.

0

Попробуйте это,

DB::table('person')->orderBy(array('amount'=>'asc', 'name'=>'asc'))->get(); 
0

Вы можете попробовать следующие

$persons = DB::table('person')    
->orderBy('amount','asc') 
->get(); 

$result = $persons->groupBy('name'); 

return $result; 

Я думаю, это работает отлично.

Смежные вопросы