位操作是程序设计中对位模式按位或二进制数的一元和二元操作. 在许多古老的微处理器上, 位运算比加减运算略快, 通常位运算比乘除法运算要快很多. 在现代架构中, 情况并非如此:位运算的运算速度通常与加法运算相同(仍然快于乘法运算)。
十进制数字:1
二进制表示:00000001(高位补0)
在MySQL 中, 常量数字默认会以8个字节来表示, 8个字节即为64位,也就是说, 在MySQL数据库中, 每一个数字并不止8位, 即使很小, 也是默认占64位的空间 (还有56个看不见的0在前面占着位置),执行下列SQL:
SELECT 1<<56>>63;
SELECT 1<<57>>63;
SELECT 1<<58>>63;
SELECT 1<<59>>63;
SELECT 1<<60>>63;
SELECT 1<<61>>63;
SELECT 1<<62>>63;
SELECT 1<<63>>63;
结果:
0
0
0
0
0
0
0
1
将结果拼起来00000001,就是1(高位补0)的二进制值。
在进行实际使用的时候只需要修改1为你要查询的值即可。如:
SELECT `status`<<63>>63 FROM student where id = 'zhangsan';
status
<<63>>63
指的是取最右边的一位数