Sql 如何在Laravel中将所有具有公共标题的行组合在一起

Sql 如何在Laravel中将所有具有公共标题的行组合在一起,sql,laravel,Sql,Laravel,是否可以将实际输出的所有行以非常有组织的JSON格式与一个SQL查询组合在一起 例如,如果我有一个包含列的表:lastname、firstname、address和phone number,我想根据这些行的姓氏的首字母将它们组合在一起,这样我就有了一些东西 { { 信:“A”, 行:{ { 姓氏:“安法尔”, 名字:“彼得”, 地址:'Street city state country', 电话号码:“电话号码” }, } 我正在使用laravel,我想知道是否有一种方法可以实现类似的功能您可以

是否可以将实际输出的所有行以非常有组织的JSON格式与一个SQL查询组合在一起

例如,如果我有一个包含列的表:lastname、firstname、address和phone number,我想根据这些行的姓氏的首字母将它们组合在一起,这样我就有了一些东西

{ { 信:“A”, 行:{ { 姓氏:“安法尔”, 名字:“彼得”, 地址:'Street city state country', 电话号码:“电话号码” },

}


我正在使用laravel,我想知道是否有一种方法可以实现类似的功能

您可以使用集合的
groupBy()
函数

在查询中添加
字母
列:

$q = User::query()
      ->selectRaw('LEFT(lastname,1) AS letter, lastname')
      ->get();
然后使用
groupBy('letter')
对列表进行分组

$q->groupBy('letter')

不使用SQL,但是您可以利用Laravel集合类。
$q->groupBy('letter')