※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。



ビット関数

MySQL では、ビット演算に BIGINT(64 ビット)演算を使用します。したがって、以下のビット演算子の範囲は最大 64 ビットになります。
|
ビットごとの OR。

mysql> SELECT 29 | 15;
        -> 31

結果は符合なしの 64 ビット整数。


&
ビットごとの AND。

mysql> SELECT 29 & 15;
        -> 13

結果は符合なしの 64 ビット整数。


^
ビットごとの XOR。

mysql> SELECT 1 ^ 1;
        -> 0
mysql> SELECT 1 ^ 0;
        -> 1
mysql> SELECT 11 ^ 3;
        -> 8

結果は符合なしの 64 ビット整数。
XOR はバージョン 4.0.2 で追加された。


<<
longlong(BIGINT)値のビットを左にシフトする。

mysql> SELECT 1 << 2;
        -> 4

結果は符合なしの 64 ビット整数。


>>
longlong(BIGINT)値のビットを右にシフトする。

mysql> SELECT 4 >> 2;
        -> 1

結果は符合なしの 64 ビット整数。


~
すべてのビットを反転させる。

mysql> SELECT 5 & ~1;
        -> 4

結果は符合なしの 64 ビット整数。


BIT_COUNT(N)
引数 N に指定された数値を 2 進表記したときに 1 に設定されるビット数を返す。

mysql> SELECT BIT_COUNT(29);
        -> 4