2012-08-08 80 views
1

我不知道这是否在这里问过。我看到几个关于“喜欢”操作符的问题,但我不确定这是我在寻找的。对不起,我是这个小白菜。但是我正在从MySQL迁移到Google App Engine,并想知道GQL中是否有一个类似于MySQL的OR操作符。GQL中是否有OR运算符?

基本上我试图实现的是通过他们的用户名或电子邮件地址获得名称登录。所以我的查询会是这样的。

query = db.GqlQuery("SELECT * FROM mytable 
        where username = :name 
        OR email = :email 
        AND password = :password", 
        name = user, 
        email = email, 
        password = pass1) 

我知道我可以执行两个查询,并检查每个查询他们的成功完成,并能够实现这一点,但我只是想知道,如果已经有在GQL一个可用。

谢谢。

回答

1

你不能做ORGQL;它仅支持IN,您可以将其视为特定属性的限制形式OR
就像你已经说过的,你唯一的选择是执行两个不同的查询并合并结果。

如果您选择的语言是Java,请查看Query.CompositeFilter,您可以使用它来使用OR运算符构造过滤器。

+0

啊,我只是想知道。谢谢你的确认。 – shriek 2012-08-08 20:44:48

+0

备注:Java Datastore API支持OR作为组合运算符(意​​味着它运行多个查询并将结果综合在一起):https://developers.google.com/appengine/docs/java/javadoc/com/google/应用服务引擎/ API /数据存储/ Query.CompositeFilter – 2012-08-08 21:39:38