下面我将分享我的现有代码,这些代码用于执行where IN条件,但现在我被如何在请求中传递值所困扰。
public func getName(list: [String], class: String) -> [String] {
let queryStatementString = "SELECT terms FROM termo WHERE terms IN =? AND class=?"
var queryStatement: OpaquePointer? = nil
var arr : [String] = []
if sqlite3_prepare_v2(db, queryStatementString, -1, &queryStatement, nil) == SQLITE_OK {
if sqlite3_bind_text(queryStatement, 1,terminalNameList, -1, SQLITE_TRANSIENT) != SQLITE_OK {
let errmsg = String(cString: sqlite3_errmsg(db)!)
print("failure binding foo: (errmsg)")
}
while sqlite3_step(queryStatement) == SQLITE_ROW {
let ter = String(describing: String(cString: sqlite3_column_text(queryStatement, 0)))
arr.append(ter)
}
} else {
print("SELECT statement could not be prepared")
}
sqlite3_finalize(queryStatement)
return arr
}
下面是我的SQL查询,我需要它来执行
let queryStatementString = "SELECT terms FROM termo WHERE terms IN =? AND class=?"
在这里,我试图传递值
if sqlite3_bind_text(queryStatement, 1, list, -1, SQLITE_TRANSIENT) !=
SQLITE_OK {
let errmsg = String(cString: sqlite3_errmsg(db)!)
print("failure binding foo: (errmsg)")
}
请大家帮帮我,提前谢谢
您可以借助以下示例构建带有where子句的选择查询
let query = users.select(email) // SELECT "email" FROM "users"
.filter(name != nil) // WHERE "name" IS NOT NULL
.order(email.desc, name) // ORDER BY "email" DESC, "name"
.limit(5, offset: 1) // LIMIT 5 OFFSET 1
你可以在这里找到更多信息