我有一个 TEST 表,它的行为似乎很奇怪。它仅由两个整数组成:ID(自动递增)和 LOCATIONSELECTED。
表格已填充
1, 99
2, 100
3, 101
etc
如果我尝试使用下面的代码查找 LOCATIONSELECTED,它会工作并返回 99!
func getTestSelectedRecord() {
sharedInstance.database!.open()
var sqlStatement = "SELECT * FROM TEST WHERE ID = 1"
var resultSet: FMResultSet! = sharedInstance.database!.executeQuery(sqlStatement, withArgumentsInArray: nil)
if (resultSet != nil) {
while resultSet.next() {
let getRecordID = resultSet.intForColumn("LOCATIONSELECTED")
NSLog("DatabaseFunctions - TEST - GET - getRecordID = %i", getRecordID)
}
}
sharedInstance.database!.close()
}
但是如果我删除 while 循环,它会返回 nul。我通常在编写 SELECT 调用时完全不使用 if != nil 和 while 调用。表中只有1条ID为1的记录。
我认为这里发生了一些微妙的事情。谁能解释一下这是什么?
最佳答案
您可以删除 while 循环,但必须保留:
resultSet.next();
语句,因为这是允许访问结果的第一条(也是唯一一条)记录的操作。
关于swift - SELECT * 行为异常 - Swift SQLite FMDB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31635872/