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

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

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

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

ลำดับการจัดเรียงค่า ENUM
1. NULL
2. สตริงว่าง
3. สตริงที่ไม่ว่าง

ตัวอย่าง

ในตัวอย่างนี้ มีตาราง 'result' พร้อมคอลัมน์ ENUM 'grade' มีข้อมูลดังนี้:

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> 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)