Python编程下SQLAlchemy查询条件设置的方法介绍


当前第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》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...