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)
输出:
() - oatmeal raisin - peanut butter - chocolate chip - chocolate chip - chocolate chip - chocolate chip - dark chocolate chip - molasses - dark chocolate chip - molasses ['dark chocolate chip', 'molasses', 'dark chocolate chip', 'molasses'] (,) ['inventory_count'] Cookie(cookie_name=, unit_cost=0.50) Cookie(cookie_name=, 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
SQLAlchemy ORM高级查询之过滤,排序的更多相关文章
- django orm高级查询 F表达式和Q表达式以及分组annotate
1.关联关系映射及查询1.1django默认开启延迟加载所有多对1和1对1如果不使用select_related(),需要会延迟加载获取到相关对象,因为延迟可能会造成n+1次查询的问题,所以便有了se ...
- Oracle学习01-Oracle的基本查询和过滤排序
- SQLAlchemy -高级查询
查询 # -*- coding: utf-8 -*- from sqlalchemy.orm import sessionmaker from SQLAlchemy.create import ...
- Net/NetCore/.NET5 ORM 六大查询体系 - SqlSugar 高级篇
框架介绍 SqlSugar ORM是一款老牌国产ORM框架,生命力也比较顽强,从早期ORM不成熟阶段,一直存活到现在,我为什么要一直坚持,那是因为还有很多用户在使用,本来我能够较早推出新开源框架 ,可 ...
- es的查询、排序查询、分页查询、布尔查询、查询结果过滤、高亮查询、聚合函数、python操作es
今日内容概要 es的查询 Elasticsearch之排序查询 Elasticsearch之分页查询 Elasticsearch之布尔查询 Elasticsearch之查询结果过滤 Elasticse ...
- springboot整合Mangodb实现crud,高级查询,分页,排序,简单聚合
//linux安装mangodb教程:https://www.cnblogs.com/yangxiaohui227/p/11347832.html 1.引入maven 依赖 <dependenc ...
- java整合Elasticsearch,实现crud以及高级查询的分页,范围,排序功能,泰文分词器的使用,分组,最大,最小,平均值,以及自动补全功能
//为index创建mapping,index相当于mysql的数据库,数据库里的表也要给各个字段创建类型,所以index也要给字段事先设置好类型: 使用postMan或者其他工具创建:(此处我使用p ...
- mysql多条件过滤查询之mysq高级查询
一.什么是高级查询: ① 多条件的过滤查询 简单说,即拼接sql语句,在sql查询语句之后使用: where 条件1 and/or 条件2 and/or 条件3 - ② 分页查询 二.多条件过滤查询: ...
- SQLAlchemy ORM之建表与查询
作了最基本的操作,找找感觉.. #coding=utf-8 from datetime import datetime from sqlalchemy import (MetaData, Table, ...
随机推荐
- BZOJ 4236: JOIOJI
Description 给出一个字符串,只包含3个字母,询问最长的一个子串,3个字母出现次数相同. Sol map. 如果一个子串满足条件,那么它端点处的三个字母的个数两两差值都是一样的,直接存个状态 ...
- 架构Android App总结
历时两个多月,自己架构的一个App快要完成了,有很多可以总结的地方: 1, 各个模块尽可能独立,不要直接调用,用消息机制解耦.包括页面跳转不要直接startActivity,而是用消息跳转:业务模块请 ...
- [mysql]max_allowed_packet ,centos
在通过脚本向mysql写入大量测试数据时,出现这个问题,记录下: https://dev.mysql.com/doc/refman/5.5/en/packet-too-large.html 修改/et ...
- Rubix - ReactJS Powered Admin Template 后台管理框架
Rubix - ReactJS Powered Admin Template 后台管理框架,使用 ReactJS. http://rubix400.sketchpixy.com/ltr/charts ...
- 【leetcode】Word Break II
Word Break II Given a string s and a dictionary of words dict, add spaces in s to construct a senten ...
- ali笔试总结
2012 http://blog.csdn.net/qunqin/article/details/6853956 2014 http://blog.csdn.net/fangjian1204/arti ...
- K3已被禁用的基础资料如何显示出来
[基础资料]——[公共资料]——[物料.职员.客户==]——[查看]——[选项]——显示禁用基础资料——确定,就可以看见你所禁用过的基础资料,显示为红色字体! 同类问题example: 金蝶K3 禁用 ...
- codeforces 449B Jzzhu and Cities (Dij+堆优化)
输入一个无向图<V,E> V<=1e5, E<=3e5 现在另外给k条边(u=1,v=s[k],w=y[k]) 问在不影响从结点1出发到所有结点的最短路的前提下,最多可以 ...
- nyoj221_Tree_subsequent_traversal
Tree 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描述 Little Valentine liked playing with binary trees very ...
- MST:Agri-Net(POJ 1258)
Agri-Net 题目大意:农夫有一片农场,现在他要把这些田地用管子连起来,田地之间有一定距离,铺设每一段管子的长度与这些田地与田地距离是一样的,问你最小的铺设方案. 这一题很裸,Kruskal算法 ...