Apa yang Anda tampilkan adalah bilangan biner
- 0000000 =0
- 0000001 =2^0 =1
- 00000010 =2^1 =2
- 0000011 =2^0 + 2^1 =3
Jadi cukup simpan angka-angka ini dalam tipe data integer (yang disimpan secara internal dengan bit seperti yang ditunjukkan tentu saja). Anda dapat menggunakan BIGINT untuk ini, seperti yang direkomendasikan dalam dokumen untuk operasi bitwise (http://dev.mysql.com/doc/refman/5.7/en/bit-functions.html ).
Berikut adalah cara mengatur flag n:
UPDATE mytable
SET bitmask = POW(2, n-1)
WHERE id = 12345;
Berikut cara menambahkan bendera:
UPDATE mytable
SET bitmask = bitmask | POW(2, n-1)
WHERE id = 12345;
Berikut cara memeriksa bendera:
SELECT *
FROM mytable
WHERE bitmask & POW(2, n-1)
Tetapi seperti yang disebutkan dalam komentar:Dalam database relasional, Anda biasanya menggunakan kolom dan tabel untuk menampilkan atribut dan relasi daripada daftar flag yang disandikan.