1
1
SQLAlchemy CRUD Plus 支持高级过滤选项,允许使用运算符查询记录,如大于(` __gt ` )、小于(` __lt ` );
2
2
3
- 大多数过滤器操作符需要一个字符串或整数值
4
-
5
- ``` python
6
- # 获取年龄大于 30 岁以上的员工
7
- items = await item_crud.select_models(
8
- session = db,
9
- age__gt = 30 ,
10
- )
11
- ```
12
-
13
3
## 比较运算符
14
4
15
5
- ` __gt ` :大于
@@ -20,6 +10,14 @@ items = await item_crud.select_models(
20
10
- ` __ne ` : 不等于
21
11
- ` __between ` : 在两者之间
22
12
13
+ ``` python title="e.g."
14
+ # 获取年龄大于 30 岁以上的员工
15
+ items = await item_crud.select_models(
16
+ session = db,
17
+ age__gt = 30 ,
18
+ )
19
+ ```
20
+
23
21
## IN 比较
24
22
25
23
- ` __in ` : 包含
@@ -30,7 +28,7 @@ items = await item_crud.select_models(
30
28
- ` __is ` :用于测试 “真”、“假” 和 “无”。
31
29
- ` __is_not ` :“is” 的否定
32
30
- ` __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
34
32
- ` __like ` :针对特定文本模式的 SQL “like” 搜索
35
33
- ` __not_like ` :“like” 的否定
36
34
- ` __ilike ` :大小写不敏感的 “like”
@@ -52,7 +50,13 @@ items = await item_crud.select_models(
52
50
53
51
## 算术运算符
54
52
55
- 此过滤器使用方法需查看:[ 算数] ( #_7 )
53
+ !!! note
54
+
55
+ 此过滤器必须传递字典,且字典结构必须为 `{'value': xxx, 'condition': {'已支持的过滤器': xxx}}`
56
+
57
+ `value`:此值将与列值进行条件运算
58
+
59
+ `condition`:此值将作为运算条件和预期结果
56
60
57
61
- ` __add ` : Python ` + ` 运算符
58
62
- ` __radd ` : Python ` + ` 反向运算
@@ -67,6 +71,14 @@ items = await item_crud.select_models(
67
71
- ` __mod ` : Python ` % ` 运算符
68
72
- ` __rmod ` : Python ` % ` 反向运算
69
73
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
+
70
82
## BETWEEN、IN、NOT IN
71
83
72
84
!!! note
@@ -84,7 +96,7 @@ items = await item_crud.select_models(
84
96
85
97
## AND
86
98
87
- 可以通过将多个过滤器链接在一起来实现 AND 子句
99
+ 当多个过滤器同时存在时,将自动转为 AND 子句
88
100
89
101
``` python
90
102
# 获取年龄在 30 以上,薪资大于 20k 的员工
@@ -142,21 +154,3 @@ items = await item_crud.select_models(
142
154
]
143
155
)
144
156
```
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