Computer >> Máy Tính >  >> Lập trình >> MySQL

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


Trong MYSQL, như chúng ta biết rằng mỗi giá trị ENUM được liên kết với một số chỉ mục. Nền tảng để sắp xếp các giá trị ENUM cũng là số chỉ mục của chúng. Hơn nữa, các số chỉ mục phụ thuộc vào thứ tự liệt kê các thành viên điều tra trong đặc tả cột. Ví dụ:trong cột ENUM (‘TỐT’, ‘TUYỆT VỜI’), ‘TỐT’ sắp xếp trước ‘TUYỆT VỜI’. Nói cách khác, chúng ta có thể nói rằng số chỉ mục của ‘TỐT’ sẽ là ‘1’ và số chỉ mục của ‘TUYỆT VỜI’ sẽ là ‘2’.

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

Thứ tự sắp xếp của các giá trị ENUM

1. NULL
2. Chuỗi trống
3. Chuỗi không trống

Ví dụ

Trong ví dụ này, chúng tôi có một bảng ‘kết quả’ có cột ENUM ‘điểm’. 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 có thể thấy rằng đầ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)