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();
语句,因为这是允许访问结果的第一条(也是唯一一条)记录的操作。
我有一个测试 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();
语句,因为这是允许访问结果的第一条(也是唯一一条)记录的操作。