이제 데이터베이스의 데이터를 해당 속성 1로 정렬합니다. 속성 1의 값이 서로 다른 여러 항목이있는 경우 데이터는 해당 ID로 정렬 된 것처럼 보입니다. 그러나 desc (id)로 정렬하여 연결을 끊고 싶습니다. 어떻게하면 넥타이가있는 경우 데이터베이스의 기본 정렬 기준을 변경할 수 있습니까?sqlalchemy의 기본 정렬 기준은 무엇입니까?
감사합니다.
이제 데이터베이스의 데이터를 해당 속성 1로 정렬합니다. 속성 1의 값이 서로 다른 여러 항목이있는 경우 데이터는 해당 ID로 정렬 된 것처럼 보입니다. 그러나 desc (id)로 정렬하여 연결을 끊고 싶습니다. 어떻게하면 넥타이가있는 경우 데이터베이스의 기본 정렬 기준을 변경할 수 있습니까?sqlalchemy의 기본 정렬 기준은 무엇입니까?
감사합니다.
순서는 SQLAlchemy가 아니라 데이터베이스에 의해 결정됩니다. 일반 SQL을 사용하면 추가 ORDER BY 절을 추가 할 수 있습니다. SQLAlchemy ORM에서는 order_by 메서드를 연결하여 동일한 작업을 수행합니다. 예를 들면 다음과 같습니다.
for eq in session.query(Equipment).order_by(Equipment.model_id).order_by(Equipment.name).all():
print (eq)
어느 것이 든 나머지는 기본 정렬입니다.
적어도 SQLAlchemy v0.9.8에서는 mapper configuration을 사용하여이 작업을 수행 할 수 있습니다. 당신은 사용자 테이블이 항상 같은 fullname
무언가에 의해 주문 레코드를 검색 할 경우
해야 작동합니다
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)
매퍼 설정에서 기본 순서를 추가하는 것은 버전 1.1부터 'Query.order_by()'를 명시 적으로 사용하기 때문에 더 이상 사용되지 않습니다. –
BTW, * * DESC를 정렬하는 방법 SQLAlchemy의가 [이 질문]에 대한 답변과 (http://stackoverflow.com/q/4186062/851737). – schlamar
고마워, 이것이 도움이된다 !! – user1909371