首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >sqlalchemy的默认排序标准是什么?

sqlalchemy的默认排序标准是什么?
EN

Stack Overflow用户
提问于 2013-01-16 22:59:11
回答 2查看 9.2K关注 0票数 8

现在,我按照属性1对数据库中的数据进行排序。如果存在属性1值相同的不同项的纽带,则数据似乎是按其id排序的。但是,我想通过按desc(id)排序来打破平局。如果存在tie,如何更改数据库的默认排序条件?

谢谢!

EN

回答 2

Stack Overflow用户

发布于 2015-02-27 20:10:17

至少在SQLAlchemy v0.9.8中,通过mapper configuration可以做到这一点。

如果您有一个用户表,并且想要检索始终按fullname排序的记录,那么应该可以使用下面这样的方法:

代码语言:javascript
复制
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column, Integer, String

Base = declarative_base()

class User(Base):
    __tablename__ = 'users'
    id = Column(Integer, primary_key=True)
    name = Column(String)
    fullname = Column(String)
    password = Column(String)

    __mapper_args__ = {
        "order_by":fullname
    }

    def __repr__(self):
       return "<User(name='%s', fullname='%s', password='%s')>" % ( self.name, self.fullname, self.password)
票数 18
EN

Stack Overflow用户

发布于 2013-01-16 23:17:15

顺序完全由数据库决定,而不是SQLAlchemy。对于普通的SQL语句,您只需添加额外的ORDER BY子句,而在SQL中,您可以通过链接order_by方法来做同样的事情。例如:

代码语言:javascript
复制
for eq in session.query(Equipment).order_by(Equipment.model_id).order_by(Equipment.name).all():
    print (eq)

以最左边的为准--最大的是主排序。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14361264

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档