【发布时间】:2014-06-10 16:01:00
【问题描述】:
我正在尝试运行查询以在数据库中搜索电子邮件。但是,我写的查询似乎只接受一个 LIKE 子句。当我添加多个 LIKE 子句时,当使用 Ajax 进行测试时,它会返回我写的“未找到票证”的 jsonify 异常错误。我可以在一个查询中编写多个 LIKE 子句的另一种方法是什么?
【问题讨论】:
-
Stackoverflow 建议了这两个标签。这个问题真的没有价值吗?
我正在尝试运行查询以在数据库中搜索电子邮件。但是,我写的查询似乎只接受一个 LIKE 子句。当我添加多个 LIKE 子句时,当使用 Ajax 进行测试时,它会返回我写的“未找到票证”的 jsonify 异常错误。我可以在一个查询中编写多个 LIKE 子句的另一种方法是什么?
【问题讨论】:
问题不在于多个 LIKE,而在于多个参数。
EmailSearchStr = """SELECT * FROM emails WHERE body LIKE %s OR subject LIKE %s""" 里面有两个 %s,所以 execute 需要两个参数。
这应该有效:
q.execute(EmailSearchStr, ("%" + search_string + "%", "%" + search_string + "%"))
顺便说一句 - 返回的异常会告诉你到底出了什么问题 - 但你用
混淆了它except Exception, e:
return jsonify(error = 'No tickets found')
“except”捕获的异常更具体,它将帮助您调试并且是一种更好的做法。
【讨论】: