赞
踩
1.带条件查询
查询是最常用的,对于各种查询我们必须要十分清楚,首先是带条件的查询
#带条件查询
rows= session.query(User).filter_by(username='jingqi').all()
print(rows)
rows1= session.query(User).filter(User.username=='jingqi').all()
print(rows1)
rows2= session.query(User.username).filter(User.username=='jingqi').all()
print(rows2)
rows3= session.query(User.username).filter(User.username=='jingqi')
print(rows3)
`filter_by`和`filter`都是过滤条件,只是用法有区别`filter_by`里面不能用`!= `还有`>
前两个查询的是`User`,所以返回结果也是一个对象,但是`rows2`查询的是属性值,所以返回的是属性值。
`rows3`可以看到`SQLAlchemy `转成的`SQL`语句,`SQLAlchemy`最后都是会转成`SQL`语句,通过这个方法可以查看原生`SQL`,甚至有些时候我们需要把`SQLAlchemy`转成的`SQL`交给DBA审查,合适的才能使用。
查询要知道查询结果的返回怎样的数据
print( session.query(User).filter(User.username=='jingqi').all() )
print( session.query(User).filter(User.username=='jingqi').first())
print( session.query(User).filter(User.username=='jingqi').one())#结果为一个时正常,多了就报错
print( session.query(User).get(2))#通过id查询
上面三条记录,第一个查出所有符合条件的记录,第二个查出所有符合记录的第一条记录,第三个返回一个对象,如果结果有多条就会报错,第四个通过主键获取记录
除此之外,我们偶尔也会需要限制返回的结果数量
#限制查询返回结果
print( session.query(User).filter(User.username!='jingqi').limit(2).all())
p
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。