Код: Выделить всё
#Установить флаг 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
| - побитовое или
& - побитовое и
подробнее в вики