显示按特定列分隔的所有列
Show all columns separate by specific column
在 mysql 中,我有 4 列,例如:
Table 名字是 'categories'
______________________________
|id | name | lastname | slug |
_______________________________|
|1 | Adam | Walkers | Test1|
|2 | Nick | Myerson | Test2|
|3 | John | Nicolas | Test1|
|_______________________________|
输出应该是:
Test1
Adam Walkers
John Nicolas
Test2
Nick Myerson
我应该做这样的东西吗? SELECT * FROM categories GROUP BY slug
并使用 foreach?
你快到了。
对于一个简单的解决方案,如果你是初学者,我建议你在它之前使用一个 ORDER BY 语句
SELECT slug, name, lastname FROM categories ORDER BY slug
结果
Test1 | Adam | Walkers
Test1 | John | Nicolas
Test2 | Nick | Myerson
然后通过代码将其按带循环的 slug 值分组。
php
中的实施示例
$grouped_types = array();
$example_categories = [["Test1", "Adam", "Walkers"],["Test1", "John", "Nicolas"],["Test2", "Nick", "Myerson"]];
//SET categories grouped
foreach($example_categories as $value){
$grouped_types[$value[0]][] = "{$value[1]} {$value[2]}";
}
//GET categories grouped
foreach(array_keys($grouped_types) as $slug){
echo "<h1>{$slug}</h1>";
foreach($grouped_types[$slug] as $names){
echo "<p>{$names}</p>";
}
}
最终结果
Test1
Adam Walkers
John Nicolas
Test2
Nick Myerson
或者,使用 提到的 GROUP_CONCAT 语句,像这样
SELECT slug, GROUP_CONCAT(CONCAT(name, ' ', lastname)) as names
FROM categories
GROUP BY slug;
结果
Test1 | Adam Walkers,John Nicolas |
Test2 | Nick Myerson |
最后,使用explode函数拆分名称
干得好!
如果您愿意在单个查询中执行,那么您可以在 MySQL.
中使用 GROUP_CONCAT() 函数
在 mysql 中,我有 4 列,例如:
Table 名字是 'categories'
______________________________
|id | name | lastname | slug |
_______________________________|
|1 | Adam | Walkers | Test1|
|2 | Nick | Myerson | Test2|
|3 | John | Nicolas | Test1|
|_______________________________|
输出应该是:
Test1
Adam Walkers
John Nicolas
Test2
Nick Myerson
我应该做这样的东西吗? SELECT * FROM categories GROUP BY slug
并使用 foreach?
你快到了。
对于一个简单的解决方案,如果你是初学者,我建议你在它之前使用一个 ORDER BY 语句
SELECT slug, name, lastname FROM categories ORDER BY slug
结果
Test1 | Adam | Walkers
Test1 | John | Nicolas
Test2 | Nick | Myerson
然后通过代码将其按带循环的 slug 值分组。
php
中的实施示例$grouped_types = array();
$example_categories = [["Test1", "Adam", "Walkers"],["Test1", "John", "Nicolas"],["Test2", "Nick", "Myerson"]];
//SET categories grouped
foreach($example_categories as $value){
$grouped_types[$value[0]][] = "{$value[1]} {$value[2]}";
}
//GET categories grouped
foreach(array_keys($grouped_types) as $slug){
echo "<h1>{$slug}</h1>";
foreach($grouped_types[$slug] as $names){
echo "<p>{$names}</p>";
}
}
最终结果
Test1
Adam Walkers
John Nicolas
Test2
Nick Myerson
或者,使用
SELECT slug, GROUP_CONCAT(CONCAT(name, ' ', lastname)) as names
FROM categories
GROUP BY slug;
结果
Test1 | Adam Walkers,John Nicolas |
Test2 | Nick Myerson |
最后,使用explode函数拆分名称
干得好!
如果您愿意在单个查询中执行,那么您可以在 MySQL.
中使用 GROUP_CONCAT() 函数