当前第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线程下thread对象的用法介绍(附实例)
Python多线程爬虫实战_爬取糗事百科段子的实例_Python
Python中如何进行检索和替换(实例解析)
Python利用smtplib实现qq邮箱发送邮件
Python全局变量和局部变量的区别
Python中关于for循环的实例详解
Python之变量的学习介绍
Python的int是什么
Python关于列表的创建使用以及更新删除的实例
Python去掉空白行的多种实现代码
更多相关阅读请进入《Python》频道 >>
人民邮电出版社
python入门书籍,非常畅销,超高好评,python官方公认好书。
转载请注明出处:木庄网络博客 » Python编程下SQLAlchemy查询条件设置的方法介绍