To, co pokazujesz, to liczby binarne
- 0000000 =0
- 0000001 =2^0 =1
- 0000010 =2^1 =2
- 0000011 =2^0 + 2^1 =3
Więc po prostu przechowuj te liczby w typie danych całkowitych (który jest wewnętrznie przechowywany z bitami, jak pokazano oczywiście). Możesz użyć do tego BIGINT, zgodnie z zaleceniami w dokumentacji dla operacji bitowych (http://dev.mysql.com/doc/refman/5.7/en/bit-functions.html ).
Oto jak ustawić flagę n:
UPDATE mytable
SET bitmask = POW(2, n-1)
WHERE id = 12345;
Oto jak dodać flagę:
UPDATE mytable
SET bitmask = bitmask | POW(2, n-1)
WHERE id = 12345;
Oto jak sprawdzić flagę:
SELECT *
FROM mytable
WHERE bitmask & POW(2, n-1)
Ale jak wspomniano w komentarzach:W relacyjnej bazie danych zwykle używa się kolumn i tabel do pokazywania atrybutów i relacji, a nie zakodowanej listy flag.