Ios 以NSArray作为语句参数的任意SQL

Ios 以NSArray作为语句参数的任意SQL,ios,objective-c,sqlite,swift,Ios,Objective C,Sqlite,Swift,我使用并希望创建如下SQL语句: "SELECT * FROM user WHERE id IN({userDtoIds})" 是的 但是stmt.run()不允许[String]作为参数 如何使用NSArray作为中SQL语句的参数?如果您使用的是类型安全层,则可以使用contains(): let arr:[String] = // NSArray of Strings let stmt:Statement = db.prepare("SELECT * FROM \(tableName)

我使用并希望创建如下SQL语句:

"SELECT * FROM user WHERE id IN({userDtoIds})"
是的

但是
stmt.run()
不允许
[String]
作为参数


如何使用NSArray作为中SQL语句的参数?

如果您使用的是类型安全层,则可以使用
contains()

let arr:[String] = // NSArray of Strings
let stmt:Statement = db.prepare("SELECT * FROM \(tableName) WHERE id IN(?)")
table.filter(contains(ids, id))

// the above assumes this boilerplate precedes it:
let table = db["tableName"]
let id = Expression<Int64>("id")
let ids: [Int64] = [1, 2, 3, 4, 5] // e.g.
let template = join(", ", [String](count: count(ids), repeatedValue: "?"))
let stmt = db.prepare(
    "SELECT * FROM \(tableName) WHERE id IN (\(template))", ids
)