Sqlalchemy order_by自定义订购?

时间:2013-07-01 15:33:17

标签: python sql sqlalchemy

我的表格中有state列,其中包含以下可能的值:dischargedin processNone

我是否可以按以下顺序获取所有记录:in processdischarged后跟None

1 个答案:

答案 0 :(得分:2)

如果你已经将该列声明为枚举类型(就像这些情况应该从一小组固定的字符串中提取值那样),那么在该列上使用ORDER BY将会命令根据枚举值的顺序生成结果。因此该列的数据类型应为ENUM('in process', 'discharged', 'None');这将导致ORDER BY按您想要的顺序排序。具体来说,枚举中的每个值都被赋予一个数字索引,并且在比较用于排序目的的枚举值时使用该索引。 (您应该声明枚举的确切方式将根据您使用的后端类型而有所不同。)