Ios 以NSArray作为语句参数的任意SQL
我使用并希望创建如下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)
"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
)