SQLAlchemy Core:按命令排序

时间:2016-02-01 14:02:14

标签: python sqlalchemy

在SQLAlchemy核心中使用“ORDER BY foo DESC”执行select语句的正确方法是什么? (核心,而不是ORM!

我目前直接在order_by中包含方向:

mytable.select(order_by='name DESC')

......它有效(虽然我不喜欢它,因为它有点“hackish”),但SQLAlchemy给了我以下警告:

  

SAWarning:无法解析标签引用'name DESC';转换为   text()(此警告可在10次出现后被抑制)
  util.ellipses_string(element.element))

(我在the doc

中找不到任何相关信息

3 个答案:

答案 0 :(得分:13)

来自SQLAlchemy docs

from sqlalchemy import desc

stmt = select([users_table]).order_by(desc(users_table.c.name))

答案 1 :(得分:1)

或根据the same documentation link

stmt = users_table.select().order_by(users_table.c.name.desc())

答案 2 :(得分:0)

按asc / desc排序列

desc = " " + asc_desc
order_by = re.sub('[^0-9a-zA-Z]+', '', order_by) + desc
query = query.order_by(text(order_by)) 
return query