在SQLAlchemy中,可以使用order_by()方法按照列名而不是值进行排序。下面是一个示例代码:
from sqlalchemy import create_engine, Column, Integer, String
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker
# 创建数据库引擎
engine = create_engine('sqlite:///test.db')
Base = declarative_base(bind=engine)
Session = sessionmaker(bind=engine)
session = Session()
# 定义数据表模型
class User(Base):
__tablename__ = 'users'
id = Column(Integer, primary_key=True)
name = Column(String)
age = Column(Integer)
# 创建数据表
Base.metadata.create_all()
# 添加测试数据
session.add_all([
User(name='John', age=25),
User(name='Alice', age=30),
User(name='Bob', age=20)
])
session.commit()
# 按列名进行排序
users = session.query(User).order_by(User.name).all()
for user in users:
print(user.name, user.age)
在上面的示例中,我们定义了一个User模型,并使用order_by()方法按照User.name列进行排序。最后,我们打印排序结果。
上一篇:按列名从CSV中获取记录
下一篇:按列名而非列号进行条件筛选