Php MYSQL按记录分组
我是初学者,我被一个问题困住了,我有一个表,其中有关于餐馆的大量数据,我有一些餐馆有多个分支机构,所以我想如下所示显示它们,正如你所看到的,我的表中有三个关于餐馆C的条目,我想在一个名称下显示它们Php MYSQL按记录分组,php,mysql,sql,Php,Mysql,Sql,我是初学者,我被一个问题困住了,我有一个表,其中有关于餐馆的大量数据,我有一些餐馆有多个分支机构,所以我想如下所示显示它们,正如你所看到的,我的表中有三个关于餐馆C的条目,我想在一个名称下显示它们 Restaurant A: 123 B town Restaurant B: 123 C town Restaurant C: 1 A Town 2 B Town 3 C Town 问题: 我已经做了一个查询,但是它只显示每个餐厅的一个条目,即使有多个针对该餐厅的记录 SELE
Restaurant A:
123 B town
Restaurant B:
123 C town
Restaurant C:
1 A Town
2 B Town
3 C Town
问题:
我已经做了一个查询,但是它只显示每个餐厅的一个条目,即使有多个针对该餐厅的记录
SELECT * FROM Restaurants
GROUP BY NAME
您不希望按名称对它们进行分组,因为该分组将只显示每个组的一行。 获取所有行,然后使用关联数组在PHP中进行分组 或者使用
GROUP\u CONCAT
,这将在一列中为您提供以逗号分隔的城镇列表
例如
按名称从my_表组中选择ame、some_id、GROUP_CONCAT(branch_town)
您不希望按名称对它们进行分组,因为该分组将只显示每个组的一行。
获取所有行,然后使用关联数组在PHP中进行分组
或者使用GROUP\u CONCAT
,这将在一列中为您提供以逗号分隔的城镇列表
例如
按名称从我的表格组中选择ame、一些id、组CONCAT(分支城市)
我会:
SELECT * FROM Restaurants
ORDER BY NAME
在您的php脚本中,请提醒我,我不知道您的表命名,所以这或多或少是伪代码
$prevGroup = false;
// How ever you normally iterate through your rows
foreach($rows as $row) {
$group = $row['name'];
if($prevGroup != $group) {
echo $row['name'];
$prevGroup = $group;
}
echo $row['city'];
}
我想:
SELECT * FROM Restaurants
ORDER BY NAME
在您的php脚本中,请提醒我,我不知道您的表命名,所以这或多或少是伪代码
$prevGroup = false;
// How ever you normally iterate through your rows
foreach($rows as $row) {
$group = $row['name'];
if($prevGroup != $group) {
echo $row['name'];
$prevGroup = $group;
}
echo $row['city'];
}
样本数据
resturant | branch
-----------------------------
Restaurant A | 123 B town
Restaurant B | 123 C town
Restaurant C | 1 A Town
Restaurant C | 2 B Town
Restaurant C | 3 C Town
质疑
结果
resturant | branch
-----------------------------
Restaurant A | 123 B town
Restaurant B | 123 C town
Restaurant C | 1 A Town,2 B Town,3 C Town
在分支上使用php示例数据
resturant | branch
-----------------------------
Restaurant A | 123 B town
Restaurant B | 123 C town
Restaurant C | 1 A Town
Restaurant C | 2 B Town
Restaurant C | 3 C Town
质疑
结果
resturant | branch
-----------------------------
Restaurant A | 123 B town
Restaurant B | 123 C town
Restaurant C | 1 A Town,2 B Town,3 C Town
在分支上使用phpGROUP BY的功能是返回所有匹配值的单个记录。因此,如果您按照一个餐厅名称进行分组,那么它只会为每个餐厅名称返回一条记录。听起来你需要做的就是按顺序排序,只需对我的sql记录排序,但它会显示我想要的内容。如果你只想打印一次名称,那么只在名称更改时打印,但不显示结果的显示方式,我无法向您展示如何将其更改为这样做。GROUP BY的功能是返回所有匹配值的单个记录。因此,如果您按照一个餐厅名称进行分组,那么它只会为每个餐厅名称返回一条记录。听起来你需要做的就是按顺序排序,只需对我的sql记录进行排序,但它会显示我想要的内容。如果你只想打印一次名称,那么只在名称更改时打印它,但如果你不显示结果的显示方式,我无法向你展示如何更改它来执行此操作。