分类 "MySQL" 下的文章

问题:使用sqlalchemy如何用or过滤条件
方法:
user = self.db.query(User).filter(or_(User.id=3, User.school=12)).all()
这样就可以过滤出用户id为3或者学校id为12的所用用户信息了

问题:使用sqlalchemy需要实现分页
解决:使用limit和offset结合的方法
方法:
user = self.db.query(User).filter(User.age==12).offset(2).limit(10).all()
获得数据的条数
count = self.db.query(User).filter(User.age==12).count()
查询速度更快的方法
count = self.db.query(func.count('1')).select_from(User).filter(User.age==12).scalar()
注:sqlalchemy不能写成limit(2,10)

问题:在sqlalchemy中需要根据if条件语句分开写查询语句filter,如何分开写filter实现多次拼接呢
解决:亲自实践
方法:
user = self.db.query(User.id,User.username,User.fullname).filter_by(org_id=99877, type=4).all()
这语句可以写成下面的
user = self.db.query(User.id,User.username,User.fullname).filter_by(org_id=99877).filter_by( type=4).all()
上面的是连着写的,下面是分开的
user = self.db.query(User.id,User.username,User.fullname).filter_by(org_id=99877)
user = user.filter_by(type=4)
user = user.all()