如何按日期对象对 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)