filter常用过滤条件
过滤是数据提取的一个很重要的功能。
- equals :
==
news= session.query(News).filter(News.title == "title1").first()
- not equals :
!=
query(User).filter(User.name != 'ed')
like
&ilike
[不区分大小写]:
query(User).filter(User.name.like('%ed%'))
in
:
query(User).filter(User.name.in_(['ed','wendy','jack']))
not in
:
query(User).filter(~User.name.in_(['ed','wendy','jack']))
is null
:
query(User).filter(User.name==None)
# 或者是
query(User).filter(User.name.is_(None))
is not null
:
query(User).filter(User.name != None)
# 或者是
query(User).filter(User.name.isnot(None))
and
:
query(User).filter(and_(User.name=='ed',User.fullname=='Ed Jones'))
# 或者是传递多个参数
query(User).filter(User.name=='ed',User.fullname=='Ed Jones')
# 或者是通过多次filter操作
query(User).filter(User.name=='ed').filter(User.fullname=='Ed Jones')
or
:
query(User).filter(or_(User.name=='ed',User.name=='wendy'))