函数func_parent_menu(menu_id)是返回指定菜单所有上级菜单字符串('1,2,3'), 下面这个语句是查询菜单400002所有上级菜单的结果集:
select * from r_menu where FIND_IN_SET(menu_id, func_parent_menu(400002));有个问题请教,下面是我想合并菜单400001,400002, 400003所有上级菜单结果集:
select * from r_menu where FIND_IN_SET(menu_id, func_parent_menu(400001)) union
select * from r_menu where FIND_IN_SET(menu_id, func_parent_menu(400002)) union
select * from r_menu where FIND_IN_SET(menu_id, func_parent_menu(400003));现在400001,400002, 400003 ... 有很多个, 来自一个select查询, 要实现该功能要怎么写?
select * from r_menu where FIND_IN_SET(menu_id, func_parent_menu(400002));有个问题请教,下面是我想合并菜单400001,400002, 400003所有上级菜单结果集:
select * from r_menu where FIND_IN_SET(menu_id, func_parent_menu(400001)) union
select * from r_menu where FIND_IN_SET(menu_id, func_parent_menu(400002)) union
select * from r_menu where FIND_IN_SET(menu_id, func_parent_menu(400003));现在400001,400002, 400003 ... 有很多个, 来自一个select查询, 要实现该功能要怎么写?
解决方案 »
- 求高手帮看看一个查询语句该怎么写
- mysql 数据恢复
- 关于 mysql 的 mysqld --console 报错的问题
- 随机取数据问题
- mysql中,这条语句怎么写呢?
- 求助:装了MSSQL后MYSQL无法启动?
- 救急!!MySQL错误
- 问题:sql="update a set b="+c[i++]+" where ID in (1,2,3);
- 请问使用LONGBLOB字段需要做什么设置
- mysql 配置文件 my.cnf 中myisam-recover-options = backup,force
- 这个问题能否用SQL语句解决,还是必须写程序?
- 太多的Record lockhea no 87 PHYSICAL RECORD:n_fields 2;compact format
像这样发比较好:◆ 粘贴出表r_menu 的结构。
◆ 粘贴一段要得到的数据示例格式。你说的那个“上级菜单字符串”真的不知道是什么啊。。menu_id 是怎么存的。
`menu_id` int(11) NOT NULL auto_increment COMMENT '菜单id',
`menu_name` varchar(50) collate utf8_unicode_ci NOT NULL COMMENT '菜单名称',
`parent_menu_id` int(11) NOT NULL COMMENT '上级菜单id',
`re` varchar(200) collate utf8_unicode_ci default NULL COMMENT '备注',
PRIMARY KEY (`menu_id`)
) ENGINE=InnoDB AUTO_INCREMENT=400003 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
menu_id int 11 0 0 -1 0 0 0 0 菜单id -1 0
menu_name varchar 50 0 0 0 0 0 0 0 菜单名称 utf8 utf8_unicode_ci 0 0
parent_menu_id int 11 0 0 0 0 0 0 0 上级菜单id 0 0
re varchar 200 0 -1 0 0 0 0 0 备注 utf8 utf8_unicode_ci 0 0
假如他的上级的上级的上级,还有上级,而且即使不是无限级别的而是上百级别的深度的呢?
为什么会有这样的需求的哦??
SELECT f.* FROM r_menu s
RIGHT JOIN r_menu f ON s.parent_menu_id=f.menu_id AND f.parent_menu_id=0
WHERE s.menu_id IN (400001,400002,400003)
http://blog.csdn.net/ACMAIN_CHM/archive/2009/05/02/4142971.aspx