pyDAL一个python的ORM(6) pyDAL常用运算

1  == !=

等于,不等于

db(db.person.dept == 'marketing').select(db.person.ALL)

db(db.person.dept != 'marketing').select(db.person.ALL)

2 >>=<<= (适用于数值、时间类型的字段)

db(db.person.age>= 'marketing').select(db.person.ALL)

db(db.person.birthday >=date(2000,1,1)).select(db.person.ALL)

   针对时间字段的格式的比较,我们用字符串格式的时间即可,pyDAL会帮我们自动转换为date和datetime数据结构,这点非常方便,例如:

db(db.person.birthday >= '2000-1-1').select(db.person.ALL)

db(db.person.birthday >= '2000-01-01').select(db.person.ALL)

datetime字段用一个date对象、date格式的字符串去比较也可以,例如

db(db.person.login_time >=date(2000,1,1)).select(db.person.ALL)

db(db.person.login_time >= '2000-01-01').select(db.person.ALL)

3likestartswith, endswith, contains

like要跟通配符%配合使用,熟练掌握like即可,其他三个都可以用like替代(他仨是为不熟悉SQL人员准备)

db(db.person.name.like('John%')).select() 等于 db(db.person.name.startswith('John')).select()

db(db.person.name.like('%John')).select() 等于 db(db.person.name.endswith('John')).select()

db(db.person.name.like('%John%')).select() 等于 db(db.person.name.contains('John')).select()

4ilike小写脱敏的like)、case_sensitive

大多数数据库中,like都是大小写敏感的,ilike和case_sensitive用于大小写脱敏查询

db(db.person.name.like('John%',case_sensitive=False)).select()等于db(db.person.name.ilike('John%')).select()

5 belongs

包含查询,用于单个字段的 多个 或逻辑 组合;

names=['sarah','david','smith']

db(db.person.name.belongs(names)).select() 等价与

db( (db.person.name == 'sarah') |

     (db.person.name == 'david') |

     (db.person.name == 'smith') 

).select()

      belongs通常和嵌套查询一起用,我们后面还会讲到

6 regexp

正则表达运算

db(db.person.id.regexp('^\+?[1-9][0-9]*$')).select()

红色的 正则表达式,意思是必须全是正整数

7 year, month, day, hour, minutes, seconds 

 datedatetime格式的字段,快速提取其中 year, month, day, hour, minutes, seconds

 db(db.log.event_time.year() > 2018).select() 等价于

db(db.log.event_time > '2018-12-31 23:59:59').select()

8 len

    用于string 或者 text 数据类型的字段

   db(db.person.name.len()>5).select()

9 count

用于查询结果有多少天记录的技术

db(db.person.name.contains('x')).count()

10 sum, avg, min, max

db().select(db.person.age.sum()).first()[sum]

db().select(db.person.age.avg()).first()[avg]

db().select(db.person.age.avg()).first()[min]

db().select(db.person.age.avg()).first()[max]

可以几个字段一起sum, avg, min, max吗,但是要特殊操作下

record_sum = db().select(db.person.age.sum(), db.person.salary.sum()).first()

sum_age = record_sum ["_extra"]["SUM(`person`.`age`)"]

sum_salary = record_sum ["_extra"]["SUM(`person`.`salary`)"]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/592743.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

安装jupyter notebook,jupyter notebook的简单使用

借助anaconda安装jupyter notebook&#xff0c;先下载anaconda然后在Anaconda Prompt中输入命令&#xff1a; 输入"jupyter notebook",在默认浏览器中打开jupyter notebook。 输入"jupyter notebook --no-browser"&#xff0c;启动服务器&#xff0c;但不打…

《论文阅读》基于情绪-原因转换图的共情回复生成

《论文阅读》基于情绪-原因转换图的共情回复生成 前言摘要模型架构图构建回复概念预测回复生成前言 今天为大家带来的是《EMPATHETIC RESPONSE GENERATION VIA EMOTION CAUSE TRANSITION GRAPH》 出版: 时间:2023.2.23 类型:共情对话生成 关键词:图网络;共情回复;情绪…

多粒度在研究中的应用

FontDiffuser: One-Shot Font Generation via Denoising Diffusion with Multi-Scale Content Aggregation and Style Contrastive Learning 存在的问题 现有的字体生成方法虽然取得了令人满意的性能&#xff0c;但在处理复杂字和风格变化较大的字符(尤其是中文字符)时&#x…

无边界支付:数字货币如何改变跨境电商?

在全球数字化的浪潮中&#xff0c;数字货币的崛起成为跨境电商领域的一场革命。本文将深入探讨数字货币如何重新定义支付体系&#xff0c;对跨境电商带来的影响以及未来可能的发展方向。 数字货币的崛起 随着比特币等数字货币的逐渐走俏&#xff0c;传统支付体系的边界逐渐被打…

TinyEngine 服务端正式开源啦!!!

背景介绍 TinyEngine 低代码引擎介绍 随着企业对于低代码开发平台的需求日益增长&#xff0c;急需一个通用的解决方案来满足各种低代码平台的开发需求。正是在这种情况下&#xff0c;低代码引擎应运而生。它是一种通用的开发框架&#xff0c;通过对低代码平台系统常用的功能进…

数脉观察二丨 详解CroPoolv2.0锁仓收益机制 文末附锁仓教程

1月1日元旦佳节期间&#xff0c;CyberVein基金会支持打造的CroPoolv2.0最新版本正式上线&#xff0c;获得了圈内媒体和知名KOL多方的关注&#xff0c;在Staking领域掀起了热议&#xff0c;用户可以前往CroPool.net进行锁仓体验。 CroPool v2.0新增“锁仓”功能板块&#xff0c…

泊松分布与二项分布的可加性

泊松分布与二项分布的可加性 泊松分布的可加性 例 : 设 X , Y X,Y X,Y 相互独立 , X ∼ P ( λ 1 ) X\sim P(\lambda_1) X∼P(λ1​) , Y ∼ P ( λ 2 ) Y\sim P(\lambda_2) Y∼P(λ2​) , 求证 Z X Y ZXY ZXY 服从参数为 λ 1 λ 2 \lambda_1 \lambda_2 λ1​λ2​ …

AI:104-基于深度学习的课堂变革与教学策略

🚀点击这里可直接跳转到本专栏,可查阅顶置最新的指南宝典~ 🎉🎊🎉 你的技术旅程将在这里启航! 从基础到实践,深入学习。无论你是初学者还是经验丰富的老手,对于本专栏案例和项目实践都有参考学习意义。 ✨✨✨ 每一个案例都附带有在本地跑过的关键代码,详细讲解…

qt下载与安装

下载安装包网址&#xff1a; Index of /qt/official_releases/online_installers/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror https://download.qt.io/archive/qt/ 安装&#xff0c;一路next 先不管他&#xff0c;直接下一步

代表团坐车 - 华为OD统一考试

OD统一考试(B卷) 分值: 100分 题解: Java / Python / C++ 题目描述 某组织举行会议,来了多个代表团同时到达,接待处只有一辆汽车可以同时接待多个代表团,为了提高车辆利用率,请帮接待员计算可以坐满车的接待方案输出方案数量。 约束: 一个团只能上一辆车,并且代表团…

两个眼前一亮的工作!已开源,可在线体验!

大家好&#xff0c;我是阿潘&#xff0c;2024 年&#xff0c;新年首个工作日&#xff0c;公司引来组织架构调整&#xff0c;两个工程师和一个产品并入业务线&#xff0c;直面业务大佬的压榨&#xff01; 第一天就搞大事情&#xff0c;希望新的一年&#xff0c;我们都能迎来爆发…

介绍一下 MVC MVVM

1. 什么是MVVM? 在MVVM框架下 视图和模型是不能直接通信 的&#xff0c;只能通过ViewModel进行交互&#xff0c;它能够监 听到数据的变化&#xff0c;然后通知视图进行自动更新&#xff0c;而当用户操作视图时&#xff0c;VM也能监听到视图 的变化&#xff0c;然后通知数据做相…

python中,将txt文件转换为csv文件的几种方法

假设有一个文本文件 data.txt 内容如下&#xff1a; Name, Age, City John, 25, New York Alice, 30, San Francisco Bob, 28, Los Angeles 方法一、使用内置的 csv 模块&#xff1a; import csv# 读取txt文件 txt_file_path data.txt csv_file_path data.csvwith open(tx…

android c++打印堆栈

比如在BufferQueueConsumer.cpp打印堆栈 diff --git a/frameworks/native/libs/gui/Android.bp b/frameworks/native/libs/gui/Android.bp index f734582377..b86ad34ee2 100644 --- a/frameworks/native/libs/gui/Android.bp b/frameworks/native/libs/gui/Android.bp -146…

【elfboard linux开发板】7.i2C工具应用与aht20温湿度寄存器读取

1. I2C工具查看aht20的温湿度寄存器值 1.1 原理图 传感器通过IIC方式进行通信&#xff0c;连接的为IIC1总线&#xff0c;且设备地址为0x38&#xff0c;实际上通过后续iic工具查询&#xff0c;这个设备是挂载在iic-0上 1.2 I2C工具 通过i2c工具可以实现查询i2c总线、以及上面…

Mac环境下反编译apk

Mac环境下反编译apk 安装反编译工具dex2jar&#xff1a;[官网下载](https://sourceforge.net/projects/dex2jar/)JD-GUI&#xff1a;[官网下载](https://jd-gui.apponic.com/) 实操1. 将需要反编译的 .apk 文件放在下载的 dex2jar 文件夹目录下2. 使用 cd /xxx/dex2jar-2.0 命令…

基于pytorch 的psnr和ssim计算

基于pytorch 的psnr和ssim计算&#xff1a; import math import numpy as np from pytorch_msssim import ssim, ms_ssim, SSIM, MS_SSIM import datetime import os import sysdef calc_psnr(sr, hr):diff (sr - hr) / 255.00mse diff.pow(2).mean()psnr -10 * math.log1…

【Linux】根文件系统添加root密码

1. 问题 量产时&#xff0c;制作根文件系统&#xff0c;并添加root密码。 2. 开发板设置 2.1 在开发板中设置root密码 sudo passwd root# 根据提示输入密码和确认密码2.2 调试串口开启密码验证 设置好后&#xff0c;发现ssh登录需要密码&#xff0c;但是调试串口依然不需要…

苹果手机怎么备份数据?方法在这,记得收藏!

苹果手机不仅具有卓越的用户体验&#xff0c;还具有强大的功能&#xff0c;因此受到了广大用户的喜爱。然而&#xff0c;在享受其带来的便捷的同时&#xff0c;我们也需要着重关注手机数据的安全。 一旦数据丢失或损坏&#xff0c;可能会对我们的生活和工作造成重大影响。那么…

电脑如何屏幕录制?轻松录制高清视频

在当今信息化的时代&#xff0c;电脑已经成为工作和生活的重要工具。无论是在进行演示、教学还是记录重要操作步骤时&#xff0c;屏幕录制都是非常有用的。可是电脑如何屏幕录制呢&#xff1f;本篇文章将介绍三种常见的电脑屏幕录制方法&#xff0c;通过学习这些方法&#xff0…