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

ค่า MySQL ENUM ถูกจัดเรียงอย่างไร?


ใน MYSQL เนื่องจากเราทราบว่าค่า ENUM แต่ละค่าเชื่อมโยงกับหมายเลขดัชนี พื้นฐานสำหรับการจัดเรียงค่า ENUM ก็คือหมายเลขดัชนีด้วย นอกจากนี้ หมายเลขดัชนีจะขึ้นอยู่กับลำดับที่สมาชิกการแจงนับถูกระบุไว้ในข้อมูลจำเพาะของคอลัมน์ ตัวอย่างเช่น ในคอลัมน์ ENUM ('GOOD', 'EXCELLENT') 'GOOD' จะเรียงลำดับก่อน 'EXCELLENT' ในอีกแง่หนึ่ง เราสามารถพูดได้ว่าหมายเลขดัชนีของ 'GOOD' จะเป็น '1' และหมายเลขดัชนีของ 'EXCELLENT' จะเป็น '2'

MySQL ยังสามารถเก็บสตริงว่างและค่า Null ไว้ใน ENUM มันเรียงลำดับสตริงว่างก่อนสตริงที่ไม่ว่างและ NULL ก่อนสตริงว่าง ดังนั้นการเรียงลำดับจะเป็นดังนี้ −

การเรียงลำดับค่า ENUM

1. NULL
2. สตริงว่าง
3. สตริงที่ไม่ว่าง

ตัวอย่าง

ในตัวอย่างนี้ เรามีตาราง 'ผลลัพธ์' ที่มีคอลัมน์ ENUM 'เกรด' ตารางนี้มีค่าดังต่อไปนี้

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)

ตอนนี้หลังจากใช้คำสั่ง ORDER BY MySQL จะคืนค่าเอาต์พุตที่เรียงลำดับ เราสามารถสังเกตได้ว่าผลลัพธ์จะถูกจัดเรียงตามหมายเลขดัชนี

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)