Php 在mysql选择中返回数组

Php 在mysql选择中返回数组,php,mysql,arrays,laravel,Php,Mysql,Arrays,Laravel,我正在尝试按型号和制造商名称对库存结果进行分组,显示匹配的项目数量和每个分组的一个结果。说到这里,我想尝试检索组中的所有库存id。不知道这是否可能。。。有什么想法吗 仅供参考-我使用的是Laravel,有问题的行是->selectRaw(CambridgeID作为CambridgeDarray) 您应该能够使用GROUP\u CONCAT为此,请参阅: 您可以使用指定输出格式选项(例如分隔符),并根据需要在组中使用额外的字符串操作 (仅供参考,至少在这个问题上,使用原始MySQL会更容易解析。)

我正在尝试按型号和制造商名称对库存结果进行分组,显示匹配的项目数量和每个分组的一个结果。说到这里,我想尝试检索组中的所有库存id。不知道这是否可能。。。有什么想法吗

仅供参考-我使用的是Laravel,有问题的行是->selectRaw(CambridgeID作为CambridgeDarray)


您应该能够使用
GROUP\u CONCAT
为此,请参阅:

您可以使用指定输出格式选项(例如分隔符),并根据需要在
组中使用额外的字符串操作

(仅供参考,至少在这个问题上,使用原始MySQL会更容易解析。)

试试这个

$getMatchingInventory = DB::table('inventory')
                            ->select(DB::raw("GROUP_CONCAT(CambridgeID) as `CambridgeIDArray`, count(*) as `groupTotal`"))
                            ->whereRaw("MATCH(ManufacturerNameMatch, SubCategoryNameMatch, MainCategoryNameMatch, Model_Name, Title_Override, Description_Old) AGAINST ('$final' IN BOOLEAN MODE)")
                            ->groupBy('Model_Name', 'ManufacturerNameMatch')
                            ->having('Units_OnHand', '>=', '1')
                            ->orderBy('ManufacturerNameMatch') 
                            ->get();

顺便说一句,你不能在WHERE语句中输入
单位吗?请参阅下面的答案(
GROUP\u CONCAT
就是您要找的)。@ldg感谢您的建议,这有助于清理它。它也应该使它稍微快一点,因为可能会按id分组,而不是按字符串分组,并在这些列上创建复合索引,这取决于数据库的大小和需要。再次感谢您提供的文档和有用的回复。
$getMatchingInventory = DB::table('inventory')
                            ->select(DB::raw("GROUP_CONCAT(CambridgeID) as `CambridgeIDArray`, count(*) as `groupTotal`"))
                            ->whereRaw("MATCH(ManufacturerNameMatch, SubCategoryNameMatch, MainCategoryNameMatch, Model_Name, Title_Override, Description_Old) AGAINST ('$final' IN BOOLEAN MODE)")
                            ->groupBy('Model_Name', 'ManufacturerNameMatch')
                            ->having('Units_OnHand', '>=', '1')
                            ->orderBy('ManufacturerNameMatch') 
                            ->get();