Sql 在位掩码中查找索引
Halo双星专家们 我有一个表示房间选项的位掩码,比如Sql 在位掩码中查找索引,sql,sqlite,binary,Sql,Sqlite,Binary,Halo双星专家们 我有一个表示房间选项的位掩码,比如11001(Opt#1,4,5) 另一个用户试图用自己的位掩码进行搜索(比如111000(Opt#4,5,6) 执行(Room | Search)!=0意味着它会比较掩码,并查看是否有相同的开关打开(在本例中为4) 问题是,开关#4是房间的第二个“活动”开关,也是第一个“搜索”开关。 我需要用户也发现#4是房间的第二个开关 用户有单独的位掩码进行检查。 房间和用户只能打开3个开关 我的方法可以知道最后一个(最大)索引,例如使用UserMask
11001(Opt#1,4,5)
另一个用户试图用自己的位掩码进行搜索(比如111000(Opt#4,5,6)
执行(Room | Search)!=0
意味着它会比较掩码,并查看是否有相同的开关打开(在本例中为4)
问题是,开关#4是房间的第二个“活动”开关,也是第一个“搜索”开关。
我需要用户也发现#4是房间的第二个开关
用户有单独的位掩码进行检查。
房间和用户只能打开3个开关
我的方法可以知道最后一个(最大)索引,例如使用UserMask2(第三个选项):
if(A
UserMask2是第三个开关,因为UserMask2的负ing使其低于UserMask2
这只会发现某个用户掩码确实位于RoomMask的最大位上
但我不知道如何继续
这是用于使用Photon进行匹配搜索的,Photon使用SQL,我可能必须通过一个WHERE查询来实现这一点(不确定它是否可以存储变量)
我希望我足够清楚
干杯!你的问题不是很清楚,因此我不是100%认为这个答案就是你想要的。不过,你还是有 您可以使用
like
键搜索列的内容,其中有两个通配符:
表示任何东西%
表示任何字符
WHERE Bitmap like '1__1__1___`
当然,这只是一个示例,您需要根据您的具体环境对其进行调整。请提供预期的输出。因此,当用户使用其个人搜索掩码检查RoomMask时:FindBitIndex(RoomMask,SearchMask1)=11001,1000=2 FindBitIndex(RoomMask,SearchMask2)=11001,10000=3 FindBitIndex(RoomMask,SearchMask1)=11001,100000=无效(因为RoomMask不包含100000)
WHERE Bitmap like '1__1__1___`