56,677
社区成员
发帖
与我相关
我的任务
分享
mysql> select * from ACL;
+-------+---------------+-------------+----------+----------+--------------+
| aclId | principalType | principalId | moduleId | aclState | extendsState |
+-------+---------------+-------------+----------+----------+--------------+
| 1 | User | 2 | 4 | 1 | 0 |
| 2 | User | 2 | 4 | 2 | 0 |
| 3 | User | 2 | 18 | 15 | 0 |
+-------+---------------+-------------+----------+----------+--------------+
3 rows in set (0.02 sec)
mysql> select aclId,principalType,
-> BIT_OR(principalId) as principalId,
-> moduleId,
-> BIT_OR(aclState) as aclState,
-> BIT_OR(extendsState) as extendsState
-> from ACL
-> group by moduleId;
+-------+---------------+-------------+----------+----------+--------------+
| aclId | principalType | principalId | moduleId | aclState | extendsState |
+-------+---------------+-------------+----------+----------+--------------+
| 1 | User | 2 | 4 | 3 | 0 |
| 3 | User | 2 | 18 | 15 | 0 |
+-------+---------------+-------------+----------+----------+--------------+
2 rows in set (0.00 sec)
mysql>
mysql> select a.aclid,a.userid,a.moduleid,max(a.aclstate | b.aclstate ),a.extend
sState
-> from acl a ,acl b where a.moduleid=b.moduleid
-> group by moduleid;
+-------+--------+----------+-------------------------------+--------------+
| aclid | userid | moduleid | max(a.aclstate | b.aclstate ) | extendsState |
+-------+--------+----------+-------------------------------+--------------+
| 1 | 2 | 4 | 3 | 0 |
| 3 | 2 | 18 | 15 | 0 |
+-------+--------+----------+-------------------------------+--------------+
2 rows in set (0.00 sec)
mysql>
select a.aclid,a.userid,a.moduleid,max(a.aclstate | b.aclstate ),a.extendsState
from acl a ,acl b where a.moduleid=b.moduleid
group by moduleid;