Битовые операции в MySQL

Битовые операции в MySQL (Работа с флагами)

#Установить флаг 0x2:
 UPDATE `table` SET `flag`=`flag` | (0x2);

#Установить сразу несколько битов (0x1 и 0x2):
 UPDATE `table` SET `flag`=`flag` | (0x1|0x2);

#Удалить флаг 0x2:
 UPDATE `table` SET `flag`=`flag` &~ (0x2);

#Удалить сразу несколько битов (0x1 и 0x2):
 UPDATE `table` SET `flag`=`flag` &~ (0x1|0x2);

#Проверка наличия флага 0x2:
 SELECT * FORM `table` WHERE (`flag` & 0x2) != 0

#Тоже самое для проверка наличия хотя бы одного бита маски 0x3. То есть если установлены биты 0x1 или 0x2.
 SELECT * FORM `table` WHERE (`flag` & 0x3) != 0

#Проверка наличия всех битов маски 0x3. То есть если установлены биты 0x1 и 0x2 одновременно.
 SELECT * FORM `table` WHERE (`flag` & 0x3) = 0x3

Шпаргалка по битовым операциям:
0x1|0x2 = 0x3 // сложение
0x3&0x2 = 0x2
0x1&0x2 = 0x0
0x3&~0x2 = 0x1