Những gì bạn đang hiển thị là số nhị phân
- 0000000 =0
- 0000001 =2 ^ 0 =1
- 0000010 =2 ^ 1 =2
- 0000011 =2 ^ 0 + 2 ^ 1 =3
Vì vậy, chỉ cần lưu trữ những con số này trong một kiểu dữ liệu số nguyên (tất nhiên được lưu trữ bên trong với các bit như được hiển thị). Bạn có thể sử dụng BIGINT cho việc này, như được khuyến nghị trong tài liệu cho các hoạt động bitwise ( http://dev.mysql.com/doc/refman/5.7/en/bit-functions.html ).
Đây là cách đặt cờ n:
UPDATE mytable
SET bitmask = POW(2, n-1)
WHERE id = 12345;
Đây là cách thêm cờ:
UPDATE mytable
SET bitmask = bitmask | POW(2, n-1)
WHERE id = 12345;
Đây là cách kiểm tra cờ:
SELECT *
FROM mytable
WHERE bitmask & POW(2, n-1)
Nhưng như đã đề cập trong phần nhận xét:Trong cơ sở dữ liệu quan hệ, bạn thường sử dụng các cột và bảng để hiển thị các thuộc tính và quan hệ hơn là một danh sách cờ được mã hóa.