李斯特 发表于 2018-9-30 10:43:03

SQLAchemy操作mysql-Old

# 条件  ret = session.query(Users).filter_by(name='alex').all()
  ret = session.query(Users).filter(Users.id > 1, Users.name == 'eric').all()
  ret = session.query(Users).filter(Users.id.between(1, 3), Users.name == 'eric').all()
  ret = session.query(Users).filter(Users.id.in_()).all()
  ret = session.query(Users).filter(~Users.id.in_()).all()
  ret = session.query(Users).filter(Users.id.in_(session.query(Users.id).filter_by(name='eric'))).all()
  from sqlalchemy import and_, or_
  ret = session.query(Users).filter(and_(Users.id > 3, Users.name == 'eric')).all()
  ret = session.query(Users).filter(or_(Users.id < 2, Users.name == 'eric')).all()
  ret = session.query(Users).filter(
  or_(
  Users.id < 2,
  and_(Users.name == 'eric', Users.id > 3),
  Users.extra != ""
  )).all()
  # 通配符
  ret = session.query(Users).filter(Users.name.like('e%')).all()
  ret = session.query(Users).filter(~Users.name.like('e%')).all()
  # 限制
  ret = session.query(Users)
  # 排序
  ret = session.query(Users).order_by(Users.name.desc()).all()
  ret = session.query(Users).order_by(Users.name.desc(), Users.id.asc()).all()
  # 分组
  from sqlalchemy.sql import func
  ret = session.query(Users).group_by(Users.extra).all()
  ret = session.query(
  func.max(Users.id),
  func.sum(Users.id),
  func.min(Users.id)).group_by(Users.name).all()
  ret = session.query(
  func.max(Users.id),
  func.sum(Users.id),
  func.min(Users.id)).group_by(Users.name).having(func.min(Users.id) >2).all()
  # 连表
  ret = session.query(Users, Favor).filter(Users.id == Favor.nid).all()
  ret = session.query(Person).join(Favor).all()
  ret = session.query(Person).join(Favor, isouter=True).all()
  # 组合
  q1 = session.query(Users.name).filter(Users.id > 2)
  q2 = session.query(Favor.caption).filter(Favor.nid < 2)
  ret = q1.union(q2).all()
  q1 = session.query(Users.name).filter(Users.id > 2)
  q2 = session.query(Favor.caption).filter(Favor.nid < 2)
  ret = q1.union_all(q2).all()

页: [1]
查看完整版本: SQLAchemy操作mysql-Old