宣言
BIT_XOR(expr)
説明
expr のすべてのビットに対するビット単位の排他的論理和を返します。
結果の型は、関数の引数値がバイナリ文字列として評価されるか数値として評価されるかによって決まります。引数値がバイナリ文字列タイプであり、かつ引数が16進数リテラル、ビットリテラル、または NULL リテラルではない場合、バイナリ文字列の評価が行われます。それ以外の場合は数値計算が行われ、必要に応じて引数値は符号なし64ビット整数に変換されます。
一致する行がない場合、BIT_XOR() は引数値の長さと同じ長さのニュートラル値(すべてのビットが0に設定されている)を返します。
すべての値が NULL でない限り、NULL 値は結果に影響しません。この場合、結果は引数値と同じ長さのニュートラル値です。
例
obclient> SELECT year,month,BIT_COUNT(BIT_XOR(1<<day)) AS days FROM tbl1 GROUP BY year,month;
+------+-------+------+
| year | month | days |
+------+-------+------+
| 2021 | 01 | 3 |
| 2021 | 02 | 1 |
+------+-------+------+
2 rows in set