使用 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"。
如何检查下面这个循环中的最后一行。我使用 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"。