use*_*729 11 php mysql nested-sets
深度没有限制.
如何获得结构化分支甚至整个树?
定义来自此处:在MySQL中管理分层数据
我不确定这是你要求的,但值得注意的是你可以通过使用GROUP_CONCAT并扩展"检索a" 来获取整个树,每条路径一行,每条路径作为字符串,如下所示.单路径"来自http://mikehillyer.com/articles/managing-hierarchical-data-in-mysql/的示例
SELECT
GROUP_CONCAT(parent.name ORDER BY parent.lft ASC SEPARATOR '|')
FROM nested_category AS node
CROSS JOIN nested_category AS parent
WHERE
node.lft BETWEEN parent.lft AND parent.rgt
GROUP by node.id
ORDER BY node.lft;
Run Code Online (Sandbox Code Playgroud)
这将输出树中每个节点的路径.
注意nested_category AS node CROSS JOIN nested_category AS parent相当于nested_category AS node, nested_category AS parent.
这个用途指定字符串'|'作为分隔符,如果你想将它分解为一个路径元素数组,你知道有一个字符串不在你的数据中,你可以指定它.
即使mysql端的数据结构有些奇特,仍然可以使用正常的查询方法检索数据。发出适当的 select 语句,循环结果,并将其填充到 PHP 数组中。虽然我不知道你为什么想要这样做,因为在 PHP 中执行集合操作比在 MySQL 中困难得多。
| 归档时间: |
|
| 查看次数: |
4296 次 |
| 最近记录: |