当前位置: 首页 > news >正文

SQLAlchemy ORM高级查询之过滤,排序

order_by,filter的语法。

用久了才会熟悉。

Session = sessionmaker(bind=engine)
session = Session()

print(session.query(Cookie.cookie_name, Cookie.quantity).first())

for cookie in session.query(Cookie).order_by(desc(Cookie.quantity)):
    print('{:3} - {}'.format(cookie.quantity, cookie.cookie_name))

# query = session.query(Cookie).order_by(Cookie.quantity)[:2]
query = session.query(Cookie).order_by(Cookie.quantity).limit(4)
print([result.cookie_name for result in query])

inv_count = session.query(func.sum(Cookie.quantity)).scalar()
print(inv_count)

rec_count = session.query(func.count(Cookie.cookie_name)).first()
print(rec_count)

rec_count = session.query(func.count(Cookie.cookie_name).label('inventory_count')).first()
print(rec_count.keys())
print(rec_count.inventory_count)

record = session.query(Cookie).filter(Cookie.cookie_name == 'chocolate chip').first()
print record

record = session.query(Cookie).filter_by(cookie_name='chocolate chip').first()
print(record)

query = session.query(Cookie).filter(Cookie.cookie_name.like('%chocolate%'))
for record in query:
    print(record.cookie_name)

results = session.query(Cookie.cookie_name, 'SKU-' + Cookie.cookie_sku).all()
for row in results:
    print(row)

query = session.query(Cookie.cookie_name, cast((Cookie.quantity * Cookie.unit_cost),
                                               Numeric(12, 2)).label('inv_cost'))
for result in query:
    print('{} - {}'.format(result.cookie_name, result.inv_cost))

query = session.query(Cookie).filter(
    Cookie.quantity > 23,
    Cookie.unit_cost < 0.40
    )
for result in query:
    print(result.cookie_name)

query = session.query(Cookie).filter(
    or_(
        Cookie.quantity.between(10, 50),
        Cookie.cookie_name.contains('chip')
        )
    )
for result in query:
    print(result.cookie_name)

输出:

('chocolate chip', 12)
100 - oatmeal raisin
 24 - peanut butter
 12 - chocolate chip
 12 - chocolate chip
 12 - chocolate chip
 12 - chocolate chip
  1 - dark chocolate chip
  1 - molasses
  1 - dark chocolate chip
  1 - molasses
['dark chocolate chip', 'molasses', 'dark chocolate chip', 'molasses']
176
(10,)
['inventory_count']
10
Cookie(cookie_name='chocolate chip', cookie_recipe_url='http://www.baidu.com/', cookie_sku='CC01', quantity=12, unit_cost=0.50)
Cookie(cookie_name='chocolate chip', cookie_recipe_url='http://www.baidu.com/', cookie_sku='CC01', quantity=12, unit_cost=0.50)
chocolate chip
chocolate chip
chocolate chip
dark chocolate chip
chocolate chip
dark chocolate chip
('chocolate chip', 'SKU-CC01')
('chocolate chip', 'SKU-CC01')
('chocolate chip', 'SKU-CC01')
('dark chocolate chip', 'SKU-CC02')
('molasses', 'SKU-MOL01')
('chocolate chip', 'SKU-CC01')
('dark chocolate chip', 'SKU-CC02')
('molasses', 'SKU-MOL01')
('peanut butter', 'SKU-PB01')
('oatmeal raisin', 'SKU-EWW01')
chocolate chip - 6.00
chocolate chip - 6.00
chocolate chip - 6.00
dark chocolate chip - 0.75
molasses - 0.80
chocolate chip - 6.00
dark chocolate chip - 0.75
molasses - 0.80
peanut butter - 6.00
oatmeal raisin - 100.00
peanut butter
chocolate chip
chocolate chip
chocolate chip
dark chocolate chip
chocolate chip
dark chocolate chip
peanut butter

 

相关文章:

  • 杰卡德距离
  • 利用beans.xml进行简单的Spring应用上下文创建与使用
  • javaScript的正则表达式 (一)
  • spark学习1(hadoop集群搭建)
  • 记录水电系统开发的心理【1】
  • MySQL -- 关闭 binlog
  • MySQL密码丢失,解决方法
  • shell自动备份文件或目录到本地和远程主机
  • 表格线边框重复css解决方法
  • HTTP 500.21 处理程序“PageHandlerFactory-Integrated”在其模块列表中有一个错误模块“ManagedPipelineHandler”...
  • iOS 网络--图片库本地选取
  • Js获取当前日期时间和格式化日期
  • 在SublimeText上配置ReactJS开发环境
  • linux ftp 服务配置
  • xmake 工程描述语法更新
  • 4月23日世界读书日 网络营销论坛推荐《正在爆发的营销革命》
  • angular2 简述
  • bootstrap创建登录注册页面
  • codis proxy处理流程
  • CSS进阶篇--用CSS开启硬件加速来提高网站性能
  • Druid 在有赞的实践
  • es6--symbol
  • gops —— Go 程序诊断分析工具
  • HTML中设置input等文本框为不可操作
  • IDEA常用插件整理
  • Linux下的乱码问题
  • node 版本过低
  • PaddlePaddle-GitHub的正确打开姿势
  • Promise面试题2实现异步串行执行
  • SQLServer之索引简介
  • 得到一个数组中任意X个元素的所有组合 即C(n,m)
  • 将回调地狱按在地上摩擦的Promise
  • 盘点那些不知名却常用的 Git 操作
  • 前端代码风格自动化系列(二)之Commitlint
  • 原生Ajax
  • 正则表达式小结
  • ​香农与信息论三大定律
  • (02)Hive SQL编译成MapReduce任务的过程
  • (poj1.2.1)1970(筛选法模拟)
  • (二开)Flink 修改源码拓展 SQL 语法
  • (附源码)springboot车辆管理系统 毕业设计 031034
  • (附源码)springboot宠物管理系统 毕业设计 121654
  • (附源码)springboot电竞专题网站 毕业设计 641314
  • (附源码)计算机毕业设计SSM疫情居家隔离服务系统
  • (牛客腾讯思维编程题)编码编码分组打印下标(java 版本+ C版本)
  • (十三)Java springcloud B2B2C o2o多用户商城 springcloud架构 - SSO单点登录之OAuth2.0 根据token获取用户信息(4)...
  • (未解决)macOS matplotlib 中文是方框
  • (轉貼) 2008 Altera 亞洲創新大賽 台灣學生成果傲視全球 [照片花絮] (SOC) (News)
  • ***监测系统的构建(chkrootkit )
  • ./mysql.server: 没有那个文件或目录_Linux下安装MySQL出现“ls: /var/lib/mysql/*.pid: 没有那个文件或目录”...
  • .NET Core中的去虚
  • .NET Framework 4.6.2改进了WPF和安全性
  • .NET 动态调用WebService + WSE + UsernameToken
  • .NET建议使用的大小写命名原则
  • [ MSF使用实例 ] 利用永恒之蓝(MS17-010)漏洞导致windows靶机蓝屏并获取靶机权限