部门表table字段 id,fid,name1、0、销售部
2、0、市场部
3、0、总经理办公室
4、1、销售一组
5、1、销售二组
6、1、销售三组
7、2、市场一部
8、2、市场二部。。
(项目的部门有点变态,大小部门加起来有500个以上)是这样无限按照fid分类的方式存储的,我现在只用到2级我有一个权限表range字段 uid,rangerange 存的是部门的id,格式是字符串 例(1,2,3,4,6)现在一个人的权限是这样的uid 为 1
range 为 (2,5,7,8)这个用户拥有市场部大分类和部门以下所有部门的权限
但是他有拥有销售二组的权限,但是字段中没有存储销售不大分类的字段编号
页面中有二级联动下拉菜单我如何知道他拥有哪些大分类的权限?
range字段中如果包含大分类的编号这个好说,但是如果他仅仅拥有小部门的权限,下拉菜单中也得显示出大分类我如果一个个查一个个比较的话,方法也太笨了
有没有好点的方法能快速找到
2、0、市场部
3、0、总经理办公室
4、1、销售一组
5、1、销售二组
6、1、销售三组
7、2、市场一部
8、2、市场二部。。
(项目的部门有点变态,大小部门加起来有500个以上)是这样无限按照fid分类的方式存储的,我现在只用到2级我有一个权限表range字段 uid,rangerange 存的是部门的id,格式是字符串 例(1,2,3,4,6)现在一个人的权限是这样的uid 为 1
range 为 (2,5,7,8)这个用户拥有市场部大分类和部门以下所有部门的权限
但是他有拥有销售二组的权限,但是字段中没有存储销售不大分类的字段编号
页面中有二级联动下拉菜单我如何知道他拥有哪些大分类的权限?
range字段中如果包含大分类的编号这个好说,但是如果他仅仅拥有小部门的权限,下拉菜单中也得显示出大分类我如果一个个查一个个比较的话,方法也太笨了
有没有好点的方法能快速找到
解决方案 »
- 写几个简单的sql语句
- 触发器插入其它表中无法插入NULL空值报错。
- 大家在做大流量网站时,MYSQL的存储引擎是怎么选择的啊?是全部INNODB ?
- 财务报告
- 请问这是什么原因错误是CONCAT函数引起的吗?奇怪了
- 人太笨,存储过程太罗嗦,那位大哥给精简下,谢谢!
- datetime列进行比较
- 求救Can't connect to local MySQL server through socket '/tmp/mysql.sock'
- 急救,mysql的连接问题???
- 求助怎么取两个关联表中的自增长字段赋值到存储过程中给第三个表批量添加数据
- 现有mysqldump备份的sql,还有bin增量备份,如何恢复单个库以及如何恢复单个表?
- Mysql Like 问题
while(所有fid==0){
if(权限字段包含id) 输出。。
else{
while(所有fid==id){
if(权限字段包含id) 输出。。
}
} }
这样太低级了吧
我运行了下,提示报错#1241 - Operand should contain 1 column(s) 首页我反复检查字段名是没错的,他提示返回的字段应包含一栏?不好意思,我第一次用 find_in_set 这个函数
是我写错了,把引号写错括号了。
+------+------+--------------+
| id | fid | name |
+------+------+--------------+
| 1 | 0 | 销售部 |
| 2 | 0 | 市场部 |
| 3 | 0 | 总经理办公室 |
| 4 | 1 | 销售一组 |
| 5 | 1 | 销售二组 |
| 6 | 1 | 销售三组 |
| 7 | 2 | 市场一部 |
| 8 | 2 | 市场二部 |
+------+------+--------------+
8 rows in set (0.00 sec)mysql> select *
-> from zzxoyo a
-> where fid=0
-> and (
-> find_in_set(a.id,'2,5,7,8')
-> or
-> exists(select 1 from zzxoyo where fid=a.id and find_in_set(id,'2,5,7,8'))
-> );
+------+------+--------------+
| id | fid | name |
+------+------+--------------+
| 1 | 0 | 销售部 |
| 2 | 0 | 市场部 |
+------+------+--------------+
2 rows in set (0.00 sec)mysql>