SELECT * 行为异常 - Swift SQLite FMDB

SELECT * behaving oddly - Swift SQLite FMDB

我有一个测试 table 看起来很奇怪。它仅由两个整数组成,ID(自动递增)和 LOCATIONSELECTED.

table 已填充

1, 99
2, 100
3, 101
etc

如果我尝试使用下面的代码找到 LOCATIONSELECTED,它就会工作 returns 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 循环它 returns nul。我通常在编写 SELECT 调用时完全不使用 if != nil 和 while 调用。 table.

中只有一条ID为1的记录

我猜这里发生了一些微妙的事情。谁能解释一下这是什么?

您可以删除 while 循环,但必须保持:

resultSet.next();

语句,因为这是允许访问结果的第一条(也是唯一一条)记录的操作。