首页 新闻 赞助 找找看

sql 按位查询

0
悬赏园豆:30 [已解决问题] 解决于 2013-09-04 15:38

需求是这样的

有一件事情按周来轮回着做

所以表设计的时候设计了一个bigint

目标用7位表示一个星期的7天即(因为是10进制的原因,有如下结果)

1+2+4+8+16+32+64 全有

0+0+0+0+0+0+0全无

那么这里有一个问题,sql是怎么支持按位查询的??

希望懂的人留下解决方案,谢谢

最好能写清楚

 

及我如何用任意

1 2 4 8 16 32 64

查询全选的情况下命中

小眼睛老鼠的主页 小眼睛老鼠 | 老鸟四级 | 园豆:2731
提问于:2013-09-04 13:48
< >
分享
最佳答案
0

....

不就按位 “与”,按位 “或”,按位 “异或”  的问题么?

全有为:1|2|4|8|16|32|64 假设等于N

查询是否有: N&1=1 ,N&2=2,N&4=4,N&8=8  下同。。

移除某个值就用异或 :N^1 = M,此时你用M&1 就不等于1了。

收获园豆:30
哇~怪兽 | 小虾三级 |园豆:622 | 2013-09-04 14:47

按你的说法 

我的字段是 weekdays bigint型的 

参数是 @currentweekday

select * from table where weekdays&@currentweekday =@currentweekday

 

是这意思么????

小眼睛老鼠 | 园豆:2731 (老鸟四级) | 2013-09-04 15:08

@小眼睛老鼠:是的

哇~怪兽 | 园豆:622 (小虾三级) | 2013-09-04 15:16
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册