10

我正在使用 SQLAlchemy 在 Flask 上构建一个界面,其中一部分是搜索 API。本质上,预先输入的输入是使用其值(例如电子邮件)调用服务器,然后服务器正在使用 .like 在如下过滤器中执行 SQLalchemy 查询

q = session.query(User).filter(User.email.like('%'+term+'%')).all()

这个查询并没有真正返回任何有用的东西,在前几个字符之后,什么也没有。但是,如果我使用硬编码术语执行相同的查询,如下所示:

q = session.query(User).filter(User.email.like('%mysearchterm%')).all()

它会完美地返回结果,所以我如何将术语放入 like() 方法中,但我真的无法弄清楚问题是什么。该术语来自 ajax POST 并且该值存在于服务器端,只是 .like() 没有正确使用它。

“没什么用”是指返回的第一组结果与输入的实际术语无关,在长度高于 3-4 的术语之后,尽管数据库中存在匹配项,但没有返回任何结果。

非常感谢任何帮助。

4

1 回答 1

7

问题已解决。该查询位于一个更大的查询构建器函数中,该函数稍后将限制和偏移量应用于查询,因为限制和偏移量高于返回结果集为空的结果数量。

这可能会导致严重的人为错误和睡眠不足。

于 2012-09-14T06:03:12.553 回答