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

时间:2017-05-25 13:05:50

标签: swift sqlite loops sqlite.swift

如何查看下面此循环中的最后一行。我使用SQlite.swift循环遍历表中的所有行。当我到最后一排时,我想做点什么。

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

Here是库引用,但我可以找到关于通过循环获取特定索引的任何内容

2 个答案:

答案 0 :(得分:0)

您可以执行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
}

答案 1 :(得分:0)

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

你必须在循环之前加载所有行,或者在循环之后执行“做某事”。