sql – 可以执行按位组功能吗?
发布时间:2020-12-12 16:39:56 所属栏目:MsSql教程 来源:网络整理
导读:我在一个表中包含按位标志的字段.假设为例,有三个标志:4 =读,2 =写,1 =执行和表看起来像这样*: user_id | file | permissions-----------+--------+--------------- 1 | a.txt | 6 ( -- 6 = 4 + 2 = read + write) 1 | b.txt | 4 ( -- 4 = 4 = read) 2 | a.
我在一个表中包含按位标志的字段.假设为例,有三个标志:4 =>读,2 =>写,1 =>执行和表看起来像这样*:
user_id | file | permissions -----------+--------+--------------- 1 | a.txt | 6 ( <-- 6 = 4 + 2 = read + write) 1 | b.txt | 4 ( <-- 4 = 4 = read) 2 | a.txt | 4 2 | c.exe | 1 ( <-- 1 = execute) 我有兴趣在任何记录上找到具有特定标志位(例如:写入)的所有用户.为了在一个查询中做到这一点,我认为如果你把所有的用户权限在一起,你会得到一个单一的值,这是他们的权限的“总和”: user_id | all_perms -----------+------------- 1 | 6 (<-- 6 | 4 = 6) 2 | 5 (<-- 4 | 1 = 5) *我的实际表与文件或文件权限无关,这只是一个例子 有一种方法可以在一个语句中执行此操作吗?我看到它的方式,它与GROUP BY的正常聚合函数非常相似: SELECT user_id,SUM(permissions) as all_perms FROM permissions GROUP BY user_id …但显然,一些神奇的“按位或”功能而不是SUM.任何人都知道这样的事情? (和奖励积分,它在oracle工作吗?) 解决方法MySQL的:SELECT user_id,BIT_OR(permissions) as all_perms FROM permissions GROUP BY user_id (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- sqlserver存储过程_根据表1表2字段对应关系将表1数据去重导
- SQLServer采用分页的方式查询数据
- sql-server – SQL Server 2005中的SORTING分层查询
- SQL Server 2008 安装和配置图解教程(附官方下载地址)
- sql – 代表关系代数中的子查询
- sqlserver2005安装错误:性能监视器计数器要求:SQL Server
- ERROR 1045 (28000): Access denied for user ''
- SQL 2005 Express身份验证方式配置及启用
- sql 多条件组合查询,并根据指定类别找出所有最小子类别的S
- sql – 为什么“SELECT DISTINCT a,b FROM …”返回的记录少