![]() |
1
4
您可以选择具有要查找的权限子集的所有角色。计算权限数,看看它是否与您需要的权限数完全相等:
|
![]() |
2
2
在对我对这个问题的第一个答案做了一个散列之后,这里有一个稍微偏左的字段替代方案,它可以工作,但确实涉及到向数据库添加数据。 诀窍是在权限表中添加一列,该列为每一行保存一个唯一的值。 这是一个相当常见的模式,将给出精确的结果。不利的一面是,您必须编写代码来隐藏数字等价物。
然后内容将变成:
然后,每个角色组合都会产生一个独特的价值:
给:
现在我把那个开瓶器放在哪里了。。。 |
![]() |
3
1
这是一个古老的sql技巧(至少在Oracle中有效):
|
![]() |
4
1
基本上,您需要检查是否有一个角色具有与您正在检查的完全相同的不同权限数。 我在SQLServer2005上检查了这个存储过程,它只返回那些权限ID与传入的逗号分隔权限ID列表中的权限ID完全匹配的角色ID-
示例数据
|
![]() |
5
0
也许可以使用一个子查询,沿着。。。
很抱歉,我还没有验证这个问题,但是我刚刚花了一个小时调试了另一个问题的PHP代码,我觉得有必要喝一杯红酒。 |
|
Johnny T · 基于当前值的SQL合并表[重复] 7 月前 |
![]() |
John D · 需要为NULL或NOT NULL的WHERE子句 7 月前 |
![]() |
ojek · 如何对SQL结果进行分组和编号? 7 月前 |
![]() |
senek · 如何在PL/SQL中将选择结果(列)放入数组中 7 月前 |
![]() |
Sax · 规范化Google表格(第一步) 7 月前 |
![]() |
Jatin · 检索卷计数的动态sql抛出错误语法错误[关闭] 7 月前 |
![]() |
Andrus · 如何在sql中查找第二个匹配项 8 月前 |