如何按日期对象对 Swift 中的 SQLite Table 进行排序
How to sort an SQLite Table in Swift by Date object
我希望能够为我的 SQLite Table 设置排序条件,或者在每次插入新条目时对其进行排序。
SQlite docs说用query.order(expression)
目前我拥有的是:
class SQLiteData {
var fileURL : URL
var tasks : Table
var titleDb : Expression<String>
var descriptionDb : Expression<String>
var dateDb : Expression<String>
init() {
//...
tasks = Table("Tasks")
titleDb = Expression<String>("Title")
descriptionDb = Expression<String>("Description")
dateDb = Expression<String>("Date")
tasks.order(dateDb)
}
但是tasks.order(dateDb)
这行似乎没有任何效果...
我也在我的 uploadData
函数中尝试过:
func uploadData(_ title: String, _ description: String, _ date: String) {
do {
let db = try Connection(fileURL.path)
try db.run(tasks.create(ifNotExists: true) { t in
t.column(titleDb, unique : true)
t.column(descriptionDb)
t.column(dateDb)
})
let insert = tasks.insert(titleDb <- title, descriptionDb <- description,
dateDb <- date)
_ = tasks.order(dateDb)
let rowid = try db.run(insert)
}
catch {
print(error)
}
}
但遗憾的是,这样做也没有取得任何成功。任何想法我将如何设置 table 始终按 dateDb
排序?谢谢。
.order 不是 table 的属性。它是查询的一个特征。下面的 sortedTasks 查询可能是您需要的。
tasks = Table("Tasks")
sortedTasks = Table("Tasks").order(dateDb)
我希望能够为我的 SQLite Table 设置排序条件,或者在每次插入新条目时对其进行排序。
SQlite docs说用query.order(expression)
目前我拥有的是:
class SQLiteData {
var fileURL : URL
var tasks : Table
var titleDb : Expression<String>
var descriptionDb : Expression<String>
var dateDb : Expression<String>
init() {
//...
tasks = Table("Tasks")
titleDb = Expression<String>("Title")
descriptionDb = Expression<String>("Description")
dateDb = Expression<String>("Date")
tasks.order(dateDb)
}
但是tasks.order(dateDb)
这行似乎没有任何效果...
我也在我的 uploadData
函数中尝试过:
func uploadData(_ title: String, _ description: String, _ date: String) {
do {
let db = try Connection(fileURL.path)
try db.run(tasks.create(ifNotExists: true) { t in
t.column(titleDb, unique : true)
t.column(descriptionDb)
t.column(dateDb)
})
let insert = tasks.insert(titleDb <- title, descriptionDb <- description,
dateDb <- date)
_ = tasks.order(dateDb)
let rowid = try db.run(insert)
}
catch {
print(error)
}
}
但遗憾的是,这样做也没有取得任何成功。任何想法我将如何设置 table 始终按 dateDb
排序?谢谢。
.order 不是 table 的属性。它是查询的一个特征。下面的 sortedTasks 查询可能是您需要的。
tasks = Table("Tasks")
sortedTasks = Table("Tasks").order(dateDb)