Code Bye

层级分类菜单,拼接排序字段成完整排序,创建视图

mysql中有一张表,存放的是分类菜单,通过p_id字段来实现层级关系,有个排序字段,实现同级排序,本人现在想建个视图重新把排序字段拼接成一个完整的排序,包含父节点的排序。
表 menu如下
id    name  p_id     order
1     A          0           0
2     B          0           1
3    AA         1           0
4    AB         1           1
5    AAA       3           0
视图 menu_v如下
id    name  p_id     neworder
1     A          0           0
2     B          0           1
3    AA         1           0-0
4    AB         1           0-1
5    AAA       3           0-0-0
解决方案

10

http://blog.csdn.net/acmain_chm/article/details/4142971
MySQL中进行树状全部子节点的查询
在Oracle 中我们知道有一个 Hierarchical Queries 通过CONNECT BY 我们可以方便的查了全部当前节点下的全部子节点。但很遗憾,在MySQL的目前版本中还没有对应的功能。 在MySQL中假如是有限的层次,例如我们事先假如可以确定这个树的最大深度是4, 那么全部节点为根的树的深度均不会超过4,则我们可以直接通过left join 来实现。 但很多时候我们…

50

select m2.id,m2.name,m2.p_id,
	concat(
		if(m0.order is null,"",concat(m0.order,"-")),
		if(m1.order is null,"",concat(m1.order,"-")),
		m2.order
	) as neworder
from menu m2 left join menu m1 on m2.p_id=m1.id
	left join menu m0 on m1.p_id=m0.id

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明层级分类菜单,拼接排序字段成完整排序,创建视图