如何使用 iOS Swift 在 Azure DB 中执行 SQL 字符串包含查询?
Posted
技术标签:
【中文标题】如何使用 iOS Swift 在 Azure DB 中执行 SQL 字符串包含查询?【英文标题】:How to perform SQL string contains query in Azure DB with iOS Swift? 【发布时间】:2019-11-11 01:59:14 【问题描述】:我正在尝试使用 ios swift 在 Azure DB 中执行包含查询的字符串。
但是,我收到以下错误: 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“无法解析格式字符串“CONTAINS(title,"panda")"'
以下是我执行 Azure SQL 查询的代码:
static func tableQueryOrderBy(_ tableName: String, queryCondition: String,
orderBy: String, isDescending: Bool,
fetchOffset: Int, fetchLimit: Int,
queryCallBack: @escaping ([AnyObject]?) -> ())
guard let delegate = UIApplication.shared.delegate as? AppDelegate,
let client = delegate.client else return
// condition
guard let table = client.table(withName: tableName) else return
guard let query = MSQuery(table: table) else return
if queryCondition != ""
query.predicate = NSPredicate(format: queryCondition)
isDescending ? query.order(byDescending: orderBy) : query.order(byAscending: orderBy)
query.fetchOffset = fetchOffset
query.fetchLimit = fetchLimit
query.read result, error in
if let err = error
// print("Query failed: ", err.localizedDescription)
queryCallBack(nil)
else if let items = result?.items
// print("Query succeeded!")
queryCallBack(items as [AnyObject]?)
【问题讨论】:
【参考方案1】:终于找到了@Sanket Ray 的示例,将他/她的答案复制粘贴在这里:
let firstName = NSPredicate(format: "firstName CONTAINS[c] %@", searchText)
let lastName = NSPredicate(format: "lastName CONTAINS[c] %@", searchText)
let orCompoundPredicate = NSCompoundPredicate(orPredicateWithSubpredicates:
[firstNamePredicate,lastNamePredicate]
参考:NSPredicate: Combine CONTAINS with IN
【讨论】:
以上是关于如何使用 iOS Swift 在 Azure DB 中执行 SQL 字符串包含查询?的主要内容,如果未能解决你的问题,请参考以下文章
如何在没有 microsoft azure 用户的情况下使用 swift 获取访问令牌?
如何在 IOS Swift 中使用 SQLite 使用 FMDB 处理多个线程
如何使用 azure 流分析将 cosmos db 中的值更新为输出?