MYSQL查询问题

zbdy1 2010-07-13 11:22:30
想根据每个人的权限决定查出来的那一条是否那个人可以看到..那一列是否可见.
SQL语句做不到那么细.
就想用存储过程.查出来的时候经过一个函数判断.决定是否应该显示出来

想让效率是相当于在sql的where中写的条件.能执行sql之外的东西.像是在
while(rs.next()){
if(call(proc|function)){
...
}
}
应该怎么做,或是有什么思路.对MYSQL不太熟.有高手帮帮忙没
...全文
47 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
WWWWA 2010-07-13
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 zbdy1 的回复:]
问题总结:用存储过程来代替WHERE后的条件
???有没有这样的东西.
[/Quote]
没有,如果要使某列可见,在SQL语句加入此列,否则去掉此列
zbdy1 2010-07-13
  • 打赏
  • 举报
回复
问题总结:用存储过程来代替WHERE后的条件
???有没有这样的东西.
zbdy1 2010-07-13
  • 打赏
  • 举报
回复
这些规则分级,以哪一级为准.然后哪一级次之.....也是配出来的...
所以想分离开来.加一块儿就麻烦死了.所以就想要个.可以查出来一条执行一个方法判断一下是否可见的东西.
想是写个存储过程.
全查的过程中能判断了这些,将符合的记录放到临时表中.最后好用
对了,还要加分页#75
zbdy1 2010-07-13
  • 打赏
  • 举报
回复
没有权限列.
根据规则来的.
(A公司可见.1)
(B部门可见.2)
(C组不可见.3)
(D个人可见.4)
那最终就可见...
WWWWA 2010-07-13
  • 打赏
  • 举报
回复
累加字符串生成SQL语句,再动态执行
if 权限列1=1 then
set @asql=concat('select 权限列1....');
end if;
prepare asql from @sql;
execute asql;
zbdy1 2010-07-13
  • 打赏
  • 举报
回复
我想想回头试试.
谢谢.
ACMAIN_CHM 2010-07-13
  • 打赏
  • 举报
回复
存储过程也可以实现,不过从传统设计来说,对MYSQL数据库你所对应的多个用户还是用同一个数据库用户账号登录的。这部分应该在逻辑层由软件来实现。这样从层次上也分工比较清晰。
zbdy1 2010-07-13
  • 打赏
  • 举报
回复
我以为在存储过程中会比程序中省点儿不管是时间还是消耗,毕竟它跟数据库关系好点儿.
ACMAIN_CHM 2010-07-13
  • 打赏
  • 举报
回复
如果存储过程也可以实现,一些软件比如SAP就是利用类似你这种设计来实现的,不过它是在程序中实现而不是在存储过程中。
ACMAIN_CHM 2010-07-13
  • 打赏
  • 举报
回复
一般是通过视图来实现这种权限上的分配。比如用HR的用户组可以看到人员信息中的全部。而给财务部创建一个视图,然后仅授权这个视图给财务组。

56,679

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧