【问题标题】:Another way to write multiple LIKE clauses in SQL在 SQL 中编写多个 LIKE 子句的另一种方法
【发布时间】:2014-06-10 16:01:00
【问题描述】:

我正在尝试运行查询以在数据库中搜索电子邮件。但是,我写的查询似乎只接受一个 LIKE 子句。当我添加多个 LIKE 子句时,当使用 Ajax 进行测试时,它会返回我写的“未找到票证”的 jsonify 异常错误。我可以在一个查询中编写多个 LIKE 子句的另一种方法是什么?

【问题讨论】:

  • Stackoverflow 建议了这两个标签。这个问题真的没有价值吗?

标签: python mysql sql ajax


【解决方案1】:

问题不在于多个 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”捕获的异常更具体,它将帮助您调试并且是一种更好的做法。

【讨论】:

  • 感谢您帮助我。它仍然给出了同样的错误,没有指出语法错误。
  • @JustinBaxtron 您能否删除包装的 try-except 并提供您收到的确切异常?
  • 错误:“搜索模块未成功执行(1064,“您的 SQL 语法有错误;请查看与您的 MySQL 服务器版本相对应的手册,以在 'WHERE subject LIKE 附近使用正确的语法'%%the%%'' at line 1")" 我试着搜索单词'the'。
  • 你能提供q._executed吗?
  • 我在问题帖中添加了 Ajax 查询。
猜你喜欢
  • 2011-07-25
  • 2012-01-23
  • 1970-01-01
  • 1970-01-01
  • 2012-05-05
  • 2011-05-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多