11SQLAlchemy CRUD Plus 支持高级过滤选项,允许使用运算符查询记录,如大于(` __gt ` )、小于(` __lt ` );
22
3- 大多数过滤器操作符需要一个字符串或整数值
4-
5- ``` python
6- # 获取年龄大于 30 岁以上的员工
7- items = await item_crud.select_models(
8- session = db,
9- age__gt = 30 ,
10- )
11- ```
12-
133## 比较运算符
144
155- ` __gt ` :大于
@@ -20,6 +10,14 @@ items = await item_crud.select_models(
2010- ` __ne ` : 不等于
2111- ` __between ` : 在两者之间
2212
13+ ``` python title="e.g."
14+ # 获取年龄大于 30 岁以上的员工
15+ items = await item_crud.select_models(
16+ session = db,
17+ age__gt = 30 ,
18+ )
19+ ```
20+
2321## IN 比较
2422
2523- ` __in ` : 包含
@@ -30,7 +28,7 @@ items = await item_crud.select_models(
3028- ` __is ` :用于测试 “真”、“假” 和 “无”。
3129- ` __is_not ` :“is” 的否定
3230- ` __is_distinct_from ` : 产生 SQL IS DISTINCT FROM
33- - ` __is_not_distinct_from ` : Produces SQL IS NOT DISTINCT FROM
31+ - ` __is_not_distinct_from ` : 产生 SQL IS NOT DISTINCT FROM
3432- ` __like ` :针对特定文本模式的 SQL “like” 搜索
3533- ` __not_like ` :“like” 的否定
3634- ` __ilike ` :大小写不敏感的 “like”
@@ -52,7 +50,13 @@ items = await item_crud.select_models(
5250
5351## 算术运算符
5452
55- 此过滤器使用方法需查看:[ 算数] ( #_7 )
53+ !!! note
54+
55+ 此过滤器必须传递字典,且字典结构必须为 `{'value': xxx, 'condition': {'已支持的过滤器': xxx}}`
56+
57+ `value`:此值将与列值进行条件运算
58+
59+ `condition`:此值将作为运算条件和预期结果
5660
5761- ` __add ` : Python ` + ` 运算符
5862- ` __radd ` : Python ` + ` 反向运算
@@ -67,6 +71,14 @@ items = await item_crud.select_models(
6771- ` __mod ` : Python ` % ` 运算符
6872- ` __rmod ` : Python ` % ` 反向运算
6973
74+ ``` python title="e.g."
75+ # 获取薪资打八折以后仍高于 20k 的员工
76+ items = await item_crud.select_models(
77+ session = db,
78+ payroll__mul = {' value' : 0.8 , ' condition' : {' gt' : 20000 }},
79+ )
80+ ```
81+
7082## BETWEEN、IN、NOT IN
7183
7284!!! note
@@ -84,7 +96,7 @@ items = await item_crud.select_models(
8496
8597## AND
8698
87- 可以通过将多个过滤器链接在一起来实现 AND 子句
99+ 当多个过滤器同时存在时,将自动转为 AND 子句
88100
89101``` python
90102# 获取年龄在 30 以上,薪资大于 20k 的员工
@@ -142,21 +154,3 @@ items = await item_crud.select_models(
142154 ]
143155)
144156```
145-
146- ## 算数
147-
148- !!! note
149-
150- 此过滤器必须传递字典,且字典结构必须为 `{'value': xxx, 'condition': {'已支持的过滤器': xxx}}`
151-
152- `value`:此值将与列值进行运算
153-
154- `condition`:此值将作为运算后的比较值,比较条件取决于使用的过滤器
155-
156- ``` python
157- # 获取薪资打八折以后仍高于 20k 的员工
158- items = await item_crud.select_models(
159- session = db,
160- payroll__mul = {' value' : 0.8 , ' condition' : {' gt' : 20000 }},
161- )
162- ```
0 commit comments