To, co ukazujete, jsou binární čísla
- 0000000 =0
- 0000001 =2^0 =1
- 0000010 =2^1 =2
- 0000011 =2^0 + 2^1 =3
Jednoduše tedy uložte tato čísla do datového typu typu integer (který je samozřejmě interně uložen s bity, jak je ukázáno). K tomu můžete použít BIGINT, jak je doporučeno v dokumentech pro bitové operace (http://dev.mysql.com/doc/refman/5.7/en/bit-functions.html ).
Zde je návod, jak nastavit příznak n:
UPDATE mytable
SET bitmask = POW(2, n-1)
WHERE id = 12345;
Zde je návod, jak přidat příznak:
UPDATE mytable
SET bitmask = bitmask | POW(2, n-1)
WHERE id = 12345;
Zde je návod, jak zkontrolovat příznak:
SELECT *
FROM mytable
WHERE bitmask & POW(2, n-1)
Ale jak je zmíněno v komentářích:V relační databázi obvykle používáte sloupce a tabulky k zobrazení atributů a vztahů spíše než kódovaný seznam příznaků.