在appengine上运行像“OR”查询的sql

时间:2011-06-20 16:01:20

标签: python google-app-engine

如何运行此查询的等效内容:

"select * from users where username='john' or email='john@email.com';

关于appengine?我知道appengine不支持“OR”但是“IN”只是不确定如何将它用于这样的查询。

2 个答案:

答案 0 :(得分:1)

This问题给出了使用'IN'作为'OR'等价物的示例。但是,如评论中所述,GAE会将“IN”视为多个查询,并且通常是一个坏主意,尤其是在查询许多列表值时。

您最好的选择通常是自己执行单独的查询并以编程方式将它们组合在一起。

编辑:正如所指出的那样,使用IN过滤器无论如何都不适用于您的具体示例。

答案 1 :(得分:1)

您不能在Appengine中的一个查询中执行此操作。你可以做两个查询并结合两个结果。你应该做这样的事情来实现上述查询

  result_1 = users.all().filter("username = ","john").fetch(100)
  result_2 = users.all().filter("email = ",'john@email.com').fetch(100)
  results = result_1.extend(result_2)