Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

การ SELECT เรคคอร์ดจากฟิลด์ ENUM ใน MySQL

สร้างตารางด้วย ENUM และค้นหาข้อมูล

สร้างตารางมี ENUM

mysql> create table DemoTable ( EmployeeStatus ENUM('FULLTIME','Intern') default NULL ); 
Query OK, 0 rows affected (0.66 sec)

เพิ่มข้อมูล

mysql> insert into DemoTable values('FULLTIME'); 
Query OK, 1 row affected (0.19 sec) 
mysql> insert into DemoTable values('Intern'); 
Query OK, 1 row affected (0.10 sec) 
mysql> insert into DemoTable values('Intern'); 
Query OK, 1 row affected (0.10 sec) 
mysql> insert into DemoTable values(); 
Query OK, 1 row affected (0.12 sec)

คิวรี่เลือกที่ไม่ใช่ Intern (รวม NULL)

mysql> select * from DemoTable where EmployeeStatus is null or EmployeeStatus <> 'Intern';

ผลลัพธ์

+----------------+ 
| EmployeeStatus | 
+----------------+ 
| FULLTIME       | 
| NULL           | 
+----------------+ 
2 rows in set (0.00 sec)

จุดสังเกต: ENUM จัดเก็บเป็นตัวเลขภายใน (1=FULLTIME, 2=Intern) | การเปรียบเทียบ <> 'Intern' ทำงานได้ตามค่าสตริง | ต้องตรวจสอบ NULL แยกต่างหาก เพราะ NULL <> 'Intern' เป็น UNKNOWN ไม่ใช่ TRUE