宣言
BIT_XOR(expr)
説明
expr のすべてのビットに対するビット単位の排他的論理和を返します。
結果の型は、関数の引数値がバイナリ文字列として評価されるか、数値として評価されるかによって決まります。引数値がバイナリ文字列型であり、かつ16進数リテラル、Bitリテラル、または 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