Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Loại dữ liệu tốt nhất để lưu trữ một số dài gồm 0 và 1

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.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. tạo các hàng trống ngay cả khi trống giữa 2 ngày

  2. Cần giải quyết vấn đề IE 8 Jquery

  3. Khi sử dụng Entity Framework với MySQL, các ký tự Unicode được thay thế bằng các ký tự cơ bản

  4. làm thế nào để 'tải dữ liệu trong tệp tin' trên amazon RDS?

  5. Các hàm mysql trong trình tạo truy vấn trong laravel