我正在尝试执行一个 mysql 查询,该查询将创建一个父项数组,其子项位于其下方。但我不是 100% 确定如何。这是我到目前为止所做的:
从类别中选择 * 作为 rf ORDER BY 父项,名称 ASC
这是输出的内容(数组):
Array
(
[0] => stdClass Object
(
[id] => 7
[name] => Safety Clothing
[parent] => 0
)
[1] => stdClass Object
(
[id] => 8
[name] => Safety Footwear
[parent] => 0
)
[2] => stdClass Object
(
[id] => 9
[name] => Workwear
[parent] => 0
)
[3] => stdClass Object
(
[id] => 4
[name] => Polos
[parent] => 7
)
[4] => stdClass Object
(
[id] => 3
[name] => Shirts
[parent] => 7
)
[5] => stdClass Object
(
[id] => 6
[name] => Jackets
[parent] => 9
)
[6] => stdClass Object
(
[id] => 1
[name] => Pants
[parent] => 9
)
[7] => stdClass Object
(
[id] => 2
[name] => Shirts
[parent] => 9
)
[8] => stdClass Object
(
[id] => 5
[name] => Shorts
[parent] => 9
)
)
正如您所看到的,子项具有父项的 id(父项设置为 0),但我不确定如何将它们合并在一起以执行类似这样的数组:
父级
-- child
-- child
父级
父级
-- child
-- child
-- child
如有任何帮助,我们将不胜感激:)
最佳答案
还有
选择父级,GROUP_CONCAT(name) 作为名称 FROM 类别作为 rf GROUP BY 1;
您将为每个父项获取一行,其中父项 ID 位于第一列,子项名称在第二列中以逗号分隔。
关于php - 需要 mysql 查询帮助 - 按父级分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4753982/