ios - Arbitrary SQL with NSArray as Statement Argument -
i use sqlite.swift , want create sql statement this:
"select * user id in({userdtoids})" i did
let arr:[string] = // nsarray of strings let stmt:statement = db.prepare("select * \(tablename) id in(?)") but stmt.run() not allow [string] argument.
how can use nsarray argument sql statement in sqlite.swift?
if you're using type-safe layer, can use contains():
table.filter(contains(ids, id)) // above assumes boilerplate precedes it: let table = db["tablename"] let id = expression<int64>("id") let ids: [int64] = [1, 2, 3, 4, 5] // e.g. if you're using raw sqlite3 api, not support arrays, you'll need format yourself:
let template = join(", ", [string](count: count(ids), repeatedvalue: "?")) let stmt = db.prepare( "select * \(tablename) id in (\(template))", ids )
Comments
Post a Comment