mysql中的字母排序

Ken*_*nny 2 mysql sorting alphabet

我正在使用测试数据“银行”在mac上研究mysql。我有一个关于 mysql 中字母排序的问题。

我有一个示例代码select cust_id,cust_type_cd,city,state,fed_id from customer order by 2 asc;

返回显示在第 2 列中,“I”在“B”之前。

有谁知道是什么原因?非常感谢。

Bil*_*win 5

我猜这cust_type_cdENUM在枚举定义中在“B”之前排序的“I”列。

枚举按值在枚举定义的列表中的顺序位置排序,而不是按字母顺序值排序。

要按字母顺序排序,请按字母顺序定义带有条目的枚举,或者强制将值转换为其字符串值:

... ORDER BY CONCAT(cust_type_cd) ASC
Run Code Online (Sandbox Code Playgroud)

另见http://dev.mysql.com/doc/refman/5.6/en/enum.html#enum-sorting

请注意,在ORDER BY子句中使用类似的函数会破坏使用索引进行排序的任何机会。它将被迫使用文件排序。