Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Tipe data terbaik untuk menyimpan angka panjang yang terbuat dari 0 dan 1

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.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pustaka kesalahan penumpang tidak dimuat

  2. KIRI GABUNG di ZF2 menggunakan TableGateway

  3. Kesalahan MySQL:#1142 - perintah SELECT ditolak untuk pengguna

  4. Mengekspor tabel ke CSV melalui tombol php

  5. Jalankan kueri SQL pada startup layanan MySQL