2012-08-08 83 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