如何在mysql中对枚举字段进行排序

时间:2015-02-25 06:11:46

标签: php mysql

我正在使用PHP和mysql一个表给出了一个表,我给了一个表来排序哪个有一个枚举字段

 enum('Pending','Acive','INACTIVE');

我不明白表格是如何排序的?

2 个答案:

答案 0 :(得分:0)

您可以在Sql

中进行排序
ORDER BY CASE status
           WHEN 'Pending' THEN 1
           WHEN 'Acive' THEN 3
           ELSE 2
         END 

答案 1 :(得分:0)

枚举排序

ENUM值根据其索引号进行排序,这取决于列规范中列出枚举成员的顺序。例如,对于ENUM('b','a'),'b'在'a'之前排序。空字符串在非空字符串之前排序,NULL值在所有其他枚举值之前排序。

为了防止在ENUM列上使用ORDER BY子句时出现意外结果,请使用以下技术之一:

  • 按字母顺序指定ENUM列表。

  • 通过编码ORDER BY CAST(col AS CHAR)ORDER BY CONCAT(col),确保按字符顺序而不是按索引编号对列进行排序。

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