swift - SELECT * 行为异常 - Swift SQLite FMDB

标签 swift sqlite fmdb

我有一个 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/

相关文章:

ios - swift 3 : UIImage when set to template image and changed tint color does not show image

mysql - 将列值从一个表复制到另一个匹配的 ID - SQLite

ios - FMDB 数据库无法在设备上运行,但可以在模拟器中运行

ios - FMDB 移动到 FMResultSet 中的第一个结果

swift - 在 Swift 中使用 FMDB 从多个表中进行选择

ios - 在页面 View Controller 中淡入翻页对象

swift - 如何为 UITableView 中的每个部分启用水平分页

iphone - 如何设置表格 View 单元格适应标签?

python - 在 Python 中传递 SQLite 变量

c# - 插入大量数据的最佳选择