RoR*_*RoR 12 mysql sql bitwise-operators
使用SQL,我想检测某个位是否使用整数列类型(MySQL)?
我该怎么做?
基本上,我想检测一个位是否打开,如果它打开,然后忽略.
我现在正在使用这样的东西:
WHERE (column & 2) != 2
Run Code Online (Sandbox Code Playgroud)
PyK*_*ing 14
假设您正在检查第3位然后......
SELECT bits & 8 = 8 FROM table;
Run Code Online (Sandbox Code Playgroud)
这将返回二进制(1或0),表示相关位(在这种情况下是第三个)是否为列'位'中的每一行打开或关闭.
使用2 ^ x代替第x位而不是8位.
例如,要检查第5位,我们将使用2 ^ 5 = 32
SELECT bits & 32 = 32 FROM table;
Run Code Online (Sandbox Code Playgroud)
然而,这是不必要的复杂.只需在几列中使用布尔值,它就会使事情变得更容易.
使用&
,按位AND运算符:
SELECT ID, myfield
FROM mytable
WHERE (myfield & 16) > 0
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
12675 次 |
最近记录: |