MySQL ORDER BY列ASC包含两个未正确按字母顺序排列的单词

时间:2011-10-04 04:16:40

标签: mysql sql

我正在尝试对下表进行排序:

表:人

+---+----------------------+
|id |       Ethnicity      | 
+---+----------------------+
| 1 | 'Hispanic'           |
| 2 | 'Asian American'     | 
| 3 | 'White'              |
| 4 | 'African American'   | 
| 5 | 'American Indian'    | 
| 6 | 'Other'              |
+---+----------------------+

SQL查询

SELECT DISTINCT Ethnicity FROM People ORDER BY Ethnicity ASC

结果

这会产生:

+----------------------+
|       Ethnicity      | 
+----------------------+
| 'American Indian'    |
| 'Asian American'     |
| 'African American'   |
| 'Hispanic'           |
| 'White'              |
| 'Other'              |
+----------------------+

我想要生成的结果是:

+----------------------+
|       Ethnicity      | 
+----------------------+
| 'African American'   |
| 'American Indian'    |
| 'Asian American'     |
| 'Hispanic'           |
| 'Other'              |
| 'White'              |
+----------------------+

不确定我在这里做错了什么。

1 个答案:

答案 0 :(得分:3)

如果数据类型是枚举,我相信它将按枚举列表中项目的位置(索引)排序,而不是枚举字符串的值。 “美洲印第安人”是你的枚举定义中的第一项吗?