dan*_*are 2 ios swift sqlite.swift
我有1个具有多列的表。在应用程序上,我们期待添加4个动态滤镜,例如(猫,大小,颜色,形状)。
我们知道我们可以像这样为sqllite创建一个过滤器:
user = user.select(name)
.filter((color == "Blue") && (size = "Big") && (cat="a") && (shape="round"))
.order(name.asc, name) // ORDER BY "email" DESC, "name"
.limit(5, offset: 0)
Run Code Online (Sandbox Code Playgroud)
但是,如果使用滤镜,那会发生什么呢?假设对于颜色,我们要搜索所有颜色。然后,
.filter((color == "?????") && (size = "Big") && (cat="a") && (shape="round"))
Run Code Online (Sandbox Code Playgroud)
关于如何为这种情况创建动态过滤器的任何想法?
该filter()方法需要一个Expression<Bool>参数,和化合物表达式可以动态地与逻辑运算符来创建&&,||等
简单的例子:
// Start with "true" expression (matches all records):
var myFilter = Expression<Bool>(value: true)
// Dynamically add boolean expressions:
if shouldFilterColor {
myFilter = myFilter && (color == "Blue")
}
if shouldFilterSize {
myFilter = myFilter && (size == "Big")
}
// ... etc ...
// Use compound filter:
query = user.select(name)
.filter(myFilter)
.order(name.asc, name)
.limit(5, offset: 0)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1337 次 |
| 最近记录: |