Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Các giá trị ENUM trong MySQL được sắp xếp như thế nào?


Trong MySQL, như chúng ta biết, mỗi giá trị ENUM được liên kết với một số chỉ mục. Cơ sở để sắp xếp các giá trị ENUM cũng là số chỉ mục của chúng. Ngoài ra, các số chỉ mục phụ thuộc vào thứ tự các thành viên liệt kê trong đặc tả cột. Ví dụ, trong cột ENUM('GOOD', 'EXCELLENT'), 'GOOD' sắp xếp trước 'EXCELLENT'. Nói cách khác, số chỉ mục của 'GOOD' là '1' và của 'EXCELLENT' là '2'.

MySQL cũng có thể lưu trữ chuỗi rỗng và giá trị NULL vào ENUM. Nó sắp xếp chuỗi rỗng trước chuỗi không rỗng và NULL trước chuỗi rỗng. Do đó thứ tự sắp xếp như sau:

Thứ tự sắp xếp giá trị ENUM
1. NULL
2. Chuỗi rỗng
3. Chuỗi không rỗng

Ví dụ

Trong ví dụ này, chúng ta có bảng 'result' với cột ENUM 'grade'. Bảng này có các giá trị sau:

mysql> SELECT * FROM Result; 
+-----+--------+-------+ 
| Id  | Name   | Grade | 
+-----+--------+-------+ 
| 100 | Gaurav | GOOD  | 
| 101 | Rahul  | POOR  | 
| 102 | Rahul  | NULL  | 
| 103 | Mohan  |       | 
+-----+--------+-------+ 
4 rows in set (0.00 sec)

Bây giờ, sau khi sử dụng mệnh đề ORDER BY, MySQL trả về kết quả đã sắp xếp. Chúng ta quan sát được đầu ra được sắp xếp dựa trên số chỉ mục:

mysql> SELECT * FROM result ORDER BY grade; 
+-----+--------+-------+ 
| Id  | Name   | Grade | 
+-----+--------+-------+ 
| 102 | Rahul  | NULL  | 
| 103 | Mohan  |       | 
| 101 | Rahul  | POOR  | 
| 100 | Gaurav | GOOD  | 
+-----+--------+-------+ 
4 rows in set (0.00 sec)