Това, което показвате, са двоични числа
- 0000000 =0
- 0000001 =2^0 =1
- 0000010 =2^1 =2
- 0000011 =2^0 + 2^1 =3
Така че просто съхранявайте тези числа в целочислен тип данни (който се съхранява вътрешно с битове, както е показано, разбира се). Можете да използвате BIGINT за това, както се препоръчва в документите за битови операции (http://dev.mysql.com/doc/refman/5.7/en/bit-functions.html ).
Ето как да зададете флаг n:
UPDATE mytable
SET bitmask = POW(2, n-1)
WHERE id = 12345;
Ето как да добавите флаг:
UPDATE mytable
SET bitmask = bitmask | POW(2, n-1)
WHERE id = 12345;
Ето как да проверите флаг:
SELECT *
FROM mytable
WHERE bitmask & POW(2, n-1)
Но както се споменава в коментарите:В релационна база данни обикновено използвате колони и таблици, за да показвате атрибути и релации, а не кодиран списък с флагове.