MySQL 如何对MySQL的ENUM值进行排序?

MySQL 如何对MySQL的ENUM值进行排序?

在MySQL中,正如我们所知道的每个ENUM值都与一个索引号相关联。排序ENUM值的基础也是它们的索引号。而索引号取决于在列规范中列出枚举成员的顺序。例如,在ENUM(‘GOOD’,‘EXCELLENT’)列中,“GOOD”在“EXCELLENT”之前排序。换句话说,‘GOOD’的索引号将是‘1’,而‘EXCELLENT’的索引号将是‘2’。

MySQL还可以将空字符串和null值存储到ENUM中。它在非空字符串之前对空字符串进行排序并在空字符串之前对null进行排序。因此,排序顺序如下所示:

**ENUM值的排序顺序 **

1. NULL

2. 空字符串

3. 非空字符串

阅读更多:MySQL 教程

示例

在此示例中,我们有一个表“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返回排序后的输出。我们可以观察到输出是基于索引号排序的。

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)

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程