当前第2页 返回上一页
空值NULL是数据库字段中比较特殊的值。在SQLAlchemy中支持对字段是否为空进行判断。判断时可以用等值、不等值过滤器筛选,也可以用is、isnot进行筛选。
1 2 3 4 5 6 7 8 9 | #查询salary为空值的记录,结果包含id为5的记录
#下面两方式效果相同
session.query(Account).filter(Account.salary==None)
session.query(Account).filter(Account,salary.is_(None))
#查询salary不为空值的记录,结果包含id为1、2、3、4的记录
#下面两方式效果相同
session.query(Account).filter(Account.salary!=None)
session.query(Account).filter(Account.salary.isnot(None))
|
6、非逻辑(~)
当需要查询不满足某条件的记录时可以使用非逻辑。
1 2 3 4 5 6 7 8 | #查询id不为1、3、5的记录,结果包含id为2、4的两条记录
session.query(Account).filter(~Account.id.in_([1,3,5]))
#查询工资不为2000、3000、4000的记录,结果包含id为5的1条记录
session.query(Account).filter(~Account.id.in_([2000,3000,4000]))
#查询所有title不为Engineer和Accountant的记录,结果包括id为1、5的2条记录。
session.query(Account).filter(~Account.title.in([ 'Accountant' , 'Engineer' ]))
|
7、与逻辑(and_)
当需要查询同时满足多个条件的记录时,需要用到与逻辑。在SQLAlchemy中与逻辑可以有3种表达方式。
以下3条语句查询结果相同,都是id为3的记录。
1 2 3 4 5 6 7 8 9 | #直接在filter中添加多个条件即表示与逻辑
session.query(Account).filter(Account.title== 'Engineer' ,Account.salary=3000)
#用关机子and_进行逻辑查询
from sqlalchemy import and_
session.query(Account).filter(and_(Account.title== 'Engineer' ,Account.salary=3000))
#通过多个filter的链接表示与逻辑
session.query(Account).filter(Account.title== 'Engineer' ).filter(Account.salary=3000)
|
8、或逻辑(or_)
当需要查询多个条件但只需其中一个条件满足时,需要用到或逻辑。
1 2 3 4 5 | #引入或逻辑关键字or_
from sqlalchemy import or_
#查询title是Engineer或者salary为3000的记录,返回结果为id为1、2、3、4的记录
session.query(Account).filter(or_(Account.title== 'Engineer' ,Account.salary=3000))
|
以上就是Python编程下SQLAlchemy查询条件设置的方法介绍的详细内容,更多文章请关注木庄网络博客!!
返回前面的内容
相关阅读 >>
Python中title()方法的使用
深入理解Python中多重继承
Python基于time模块求程序运行时间的方法
Python死循环如何停止
Python限制循环次数的方法
Python队列的定义与使用方法实例详解
详解Python的局部变量和全局变量使用难点
flask-migrate扩展的用法介绍(附代码)
Python之post登录测试
Python文本特征抽取与向量化算法学习实例详解
更多相关阅读请进入《Python》频道 >>
人民邮电出版社
python入门书籍,非常畅销,超高好评,python官方公认好书。
转载请注明出处:木庄网络博客 » Python编程下SQLAlchemy查询条件设置的方法介绍