我正在使用PHP和mysql一个表给出了一个表,我给了一个表来排序哪个有一个枚举字段
enum('Pending','Acive','INACTIVE');
我不明白表格是如何排序的?
答案 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