我有以下表结构:
+------------------------+
| id | name | category |
+------------------------+
| 1 | name_1 | cat_1 |
| 2 | name_2 | cat_2 |
| 3 | name_3 | cat_1 |
| . | . | . |
| . | . | . |
| n | name_n | cat_k |
+------------------------+
其中“n”是表的总行数,“k”是任意数字。我的问题是,有没有办法进行 SQL 查询来检索按类别分组的行?我的意思是有可能得到类似这样的结构吗?
array(
"cat_1" => array(
"name_1", "1",
"name_3", "3",
),
"cat_2" => array(
"name_2", "2",
some rows ....
),
...
"cat_k" => array(
some rows....
),
)
如果有什么办法,请给我一些关键字,而不是整个解决方案。
最佳答案
您实际上无法在单个查询中完成此操作,因为单独的 mysql 无法生成多维数组,但使用 PHP 几乎可以轻松完成此操作。基本上这就是你要做的:
$cats = array();
while ($row = $result->fetch()) {
if (!isset($cats[$row->category])) {
$cats[$row->category] = array();
}
$cats[$row->category][] = $row->name;
}
关于php - 按字段对行进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16554096/