Sử dụng hàm CONV() để chuyển chuỗi nhị phân sang số, sau đó lưu vào cột BIT hoặc hiển thị dưới dạng nhị phân với BIN().
Tạo bảng cột BIT
mysql> CREATE TABLE DemoTable (stringValue BIT(4));
Chèn dữ liệu từ chuỗi nhị phân
mysql> INSERT INTO DemoTable VALUES(CONV('1110', 2, 10) * 1);
mysql> INSERT INTO DemoTable VALUES(b'1011');
CONV('1110', 2, 10) chuyển nhị phân '1110' sang thập phân (14). Nhân 1 để ép kiểu số.
b'1011' là literal bit-string của MySQL (tiền tố b).
Xem dữ liệu gốc (hiển thị trống do kiểu BIT)
mysql> SELECT * FROM DemoTable;
Kết quả hiển thị ký tự không in được (binary data).
Hiển thị giá trị thập phân và nhị phân
mysql> SELECT stringValue + 0 AS DECIMAL_VALUE, BIN(stringValue) AS BINARY_VALUE FROM DemoTable;
+---------------+--------------+ | DECIMAL_VALUE | BINARY_VALUE | +---------------+--------------+ | 14 | 1110 | | 11 | 1011 | +---------------+--------------+
Giải thích
stringValue + 0: Ép kiểu BIT sang số (thập phân) để hiển thịBIN(n): Trả về chuỗi nhị phân của số nCONV(str, from_base, to_base): Chuyển đổi cơ số (2→10, 10→16, 16→2...)
Các thao tác bitwise hữu ích
-- Kiểm tra bit thứ n (0-indexed): (value >> n) & 1 -- Bật bit thứ n: value | (1 << n) -- Tắt bit thứ n: value & ~(1 << n) -- Đảo bit thứ n: value ^ (1 << n)
Lưu ý về BIT(n)
BIT(1)thường dùng cho boolean (true/false)BIT(n)lưu tối đa n bit, n ≤ 64- Khi SELECT trực tiếp, client có thể hiển thị nhị phân hoặc ký tự điều khiển — luôn dùng
+0hoặcBIN()