如何使用 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 字符串包含查询?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 azure 流分析将 cosmos db 中的值更新为输出?

如何配置我的 Azure Functions 环境,以便可以在 Python 代码中使用 Cosmos DB 客户端?

我们如何使用 Azure AD 使用 DB Visualizer 连接到雪花

如何使用 Authentication = ActiveDirectoryInteractive 从 VBA 连接到 Azure SQL DB?

如何在 Python 中从 Azure 函数调用 Cosmos DB 存储过程?

Azure SQL DB 与 Azure 搜索的自动索引/同步如何工作?