2

我在 Swift 4 中使用 GRDB 来访问 Double 类型值的两列('col1'、'col2')。

例如:

let value = Double.fetchAll(db,"SELECT col1, col2 FROM table1")

这应该返回一个包含两列双精度值的表。我想知道是否有一种方法可以按列提取结果而不逐行迭代它?使用上面我可以得到一个 col1 的数组,但不能同时得到。

4

1 回答 1

3

如果需要行,则必须逐行迭代。基本逻辑无法逃脱。

像下面这样的东西怎么样:

// [(Double, Double)]
let pairs = try Row
    .fetchAll(db, "SELECT ...")
    .map { row in
        (row[0] as Double,
         row[1] as Double)
    }
于 2018-02-07T18:39:03.397 回答