ใช้ TINYINT(1) UNSIGNED NULL สำหรับเก็บค่า 0, 1 และ NULL
ไวยากรณ์
yourColumnName TINYINT(1) UNSIGNED NULL;
ตัวอย่างการใช้งาน
สร้างตาราง:
mysql> create table StoreValue0and1orNULLDemo (
-> isDigit TINYINT(1) UNSIGNED NULL
-> );
Query OK, 0 rows affected (0.63 sec)
เพิ่มข้อมูล 0, 1, NULL:
mysql> insert into StoreValue0and1orNULLDemo values(0); mysql> insert into StoreValue0and1orNULLDemo values(1); mysql> insert into StoreValue0and1orNULLDemo values(NULL);
ผลลัพธ์:
+---------+ | isDigit | +---------+ | 0 | | 1 | | NULL | +---------+
เหตุผลที่เลือก TINYINT(1) UNSIGNED
- ใช้พื้นที่ 1 ไบต์เท่านั้น (ประหยัดที่สุด)
- UNSIGNED รองรับ 0-255 (พอสำหรับ 0,1)
- รองรับ NULL ได้
- เหมาะสำหรับ Boolean flag (true/false)
- ประสิทธิภาพดีกว่า BIT หรือ ENUM
ตัวเลือกอื่น: BIT(1) ก็ได้แต่จัดการยุ่งยากกว่า