但是你的这个需求比较特殊,你可以使用系统功能产生一个1、2、3....这有点自增列(例如id),你需要列值实际上是一个计算字段(2^(id-1)):2的id-1次方
MYSQL可以使用移位运算,例如:
SELECT id,2<<(id-1) FROM tab
mysql中有4类运算符,它们是:
算术运算符
比较运算符
逻辑运算符
位 *** 作运算符
算术 *** 作符
算术 *** 作符是SQL中最基本的 *** 作运算符,主要有一下几种运算符:
+(加)、 -(减)、 *(乘)、 /(除)、 %(求余或者模)
比较运算符
一个比较运算符的结果总是1,0或者是NULL。MySQL中的比较运算符有:
=、<=>、<>(!=)、<=、>=、>、IS NULL、IS NOT NULL、LEAST、GREATEST、BETWEEN . . . AND. . . 、ISNULL、IN、NOT IN、LIKE、REGEXP
逻辑运算符
逻辑运算符的求值所得结果均为TRUE、FALSE或NULL。
逻辑运算符有:
NOT 或者 !
AND 或者 &&
OR 或者 ||
XOR(异或)
位运算符
位运算符是用来对二进制字节中的位进行测试、移位或者测试处理。位运算符有:
位或(|)
位与(&)
位异或(^ )
位左移(<<)
位右移(<<)
位取反(~)
mysql的位函数&,就是将数字转换成2进制,各位求与。举个例子29&15 结果是13。29的二进制是11101,15的二进制是1111,位运算 11101+01111------------ 0110101101的十进制是13。在Oracle里面是BITAND(nExpression1,nExpression2) 参数 nExpression1,nExpression2 指定按位进行AND运算的两个数值。这个函数进行位运算,MySQL我没怎么用,希望有帮助欢迎分享,转载请注明来源:内存溢出
评论列表(0条)