1、按照某个字段的不同值排序,sql语句如下
SELECT * FROM `subject` WHERE id in(18,16,19) order by field(id,18,16,19)
sqlalchemy的实现方式:
sqlalchemy.orm.Query(AlphabetTable) \
.filter(AlphabetTable.letter.in_("gack")) \
.order_by(sqlalchemy.sql.expression.case(((AlphabetTable.letter == "g", 1),
(AlphabetTable.letter == "a", 2),
(AlphabetTable.letter == "c", 3),
(AlphabetTable.letter == "k", 4))))
2、某个字段按照中文拼音排序
self.db.query(OrderDo).from_statement(
"select * from order order by convert(department_name using gbk)").all()