我正在尝试运行查询来搜索数据库中的电子邮件。但是,我写的查询似乎只接受一个LIKE子句。当我添加多个LIKE子句时,它会返回jsonify异常错误,我在使用Ajax测试时写了“找不到票证”。我可以在一个查询中编写多个LIKE子句的另一种方法是什么?
答案 0 :(得分:0)
问题不在于多个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')
更具体的是"除了"之外的异常,它将帮助您调试并且是更好的做法。