BIT(1) - ชนิดข้อมูลสำหรับ 1 Bit
MySQL มีชนิดข้อมูล BIT(n) สำหรับเก็บค่า Bit Field ใช้ BIT(1) สำหรับ True/False
ไวยากรณ์
yourColumnName BIT(1)
ตัวอย่าง
CREATE TABLE bitDemo (
isValid BIT(1)
);
ตรวจสอบโครงสร้าง
SHOW CREATE TABLE bitDemo;
CREATE TABLE `bitdemo` (`isValid` bit(1) DEFAULT NULL) ENGINE=InnoDB ...
Insert ข้อมูล
INSERT INTO bitDemo VALUES (0), (1), (1), (0);
แสดงผล (ดูเป็นตัวเลข)
SELECT isValid + 0 FROM bitDemo;
+-----------+ | isValid+0 | +-----------+ | 0 | | 1 | | 1 | | 0 | +-----------+
เปรียบเทียบชนิดข้อมูล Boolean
| Type | Storage | Range | Note |
|---|---|---|---|
| BIT(1) | 1 bit | 0-1 | เล็กที่สุด จริงๆ ใช้ 1 byte |
| TINYINT(1) | 1 byte | -128 to 127 | Boolean alias ใช้กันทั่วไป |
| BOOLEAN | 1 byte | 0/1 | Alias ของ TINYINT(1) |
| CHAR(1) | 1 byte | '0'/'1' | เก็บเป็น Char |
ข้อควรระวัง
- BIT(1) จัดเก็บจริงใช้ 1 Byte (8 bits) เพราะ Memory Alignment
- SELECT ตรงๆ จะแสดง Binary Data (อ่านไม่ออก) ต้อง +0 หรือ CAST
- MySQL แปลง BIT เป็น Numeric Context อัตโนมัติใน Expression