使用 SQLite.swift 获取 swift 循环中的最后一行

Get last row in swift loop with SQLite.swift

如何检查下面这个循环中的最后一行。我使用 SQlite.swift 来循环遍历 table 中的所有行。当我打到最后一行时,我想做点什么。

    for data in try dbConnection.prepare(tableName) {
        if (thisIsTheLastRow) {
          //do something
         }
}

Here 是库参考,但我找不到任何有关通过循环获取特定索引的信息

你可以做 for index loop:

let count = try! db.scalar("SELECT count(*) FROM Table") as! Int64
for (index, data) in stmt.enumerated() {
    if index == Int(count)  {
        // Last row

    }
}

或者您可以在该库中创建一个 sqlite 语句并立即获取最后一行:

func lastRowForTable() -> Data {
   let data = try! db.scalar("SELECT * FROM table ORDER BY column DESC LIMIT 1;")
   return data
}

SQLite 按需计算结果行。所以除了尝试进入下一行之外,没有办法找出当前行是否是最后一行。

您必须在循环之前加载所有行,或者在循环之后执行 "do something"。