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中title()方法的使用

深入理解Python中多重继承

Python基于time模块求程序运行时间的方法

Python死循环如何停止

Python限制循环次数的方法

Python队列的定义与使用方法实例详解

详解Python的局部变量和全局变量使用难点

flask-migrate扩展的用法介绍(附代码)

Python之post登录测试

Python文本特征抽取与向量化算法学习实例详解

更多相关阅读请进入《Python》频道 >>




打赏

取消

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

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

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

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

评论

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