我想运行一个简单的查询来获取特定角色的所有用户,问题是用户角色以2位模式的幂为按位数存储。
例如,角色表是。
1 role one
2 role two...
4
8
16
在用户表中我们有
username other columns roles
billy .... 192949
我不确定如何查询像这样的角色......
答案 0 :(得分:2)
对于单一角色:
DECLARE @RoleOne = 1
SELECT * FROM Users
WHERE (roles & @RoleOne) > 0
或所有多个角色的成员
DECLARE @MultipleRoles = 1 + 4 + 64
SELECT * FROM Users
WHERE (roles & @MultipleRoles) = @MultipleRoles
(我假设SQL Server,但对其他版本非常相似)