与Parse.com嵌套和/或条件

时间:2014-09-08 18:04:37

标签: android parse-platform nested

这是我在这里的第一篇文章。我正在采用Parse.com的第一步,现在我遇到了一个我无法解决的问题。 之前问我一直在寻找解决方案,但我什么都没发现。

事实是我必须根据两个不同列的值从表中检索记录。

让我们考虑下表:

idSection   idItem
---------   ------
1             10 
1             11
1             12
2             20
2             21
2             22
2             23
3             31
3             32
3             33

我需要的是以下列方式创建'和'/'或'条件的选择:

select *
from table1
where (idSection = 1 and idItem > 11)
   or (idSection = 2 and idItem > 22)
   or (idSection = 3 and idItem > 32)

有什么想法吗? 提前谢谢。

1 个答案:

答案 0 :(得分:2)

如果你在iOS,你可以这样做:

NSPredicate * pred = [NSPredicate predicateWithFormat:@"(idSection = 1 and idItem > 11) or (idSection = 2 and idItem > 22) or (idSection = 3 and idItem > 32)"];
PFQuery * q = [PFQuery queryWithClassName:@"MyClass" predicate:pred];
[q findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
    NSLog(@"OBJ : %@",objects);
}];

如果是javascript,请执行以下操作:

var clz = "MyClass";

var q1 = new Parse.Query(clz);
q1.equalTo("idSection", 1);
q1.greaterThan("idItem", 11);

var q2 = new Parse.Query(clz);
q2.equalTo("idSection", 2);
q2.greaterThan("idItem", 22);

var q3 = new Parse.Query(clz);
q3.equalTo("idSection", 3);
q3.greaterThan("idItem", 32);

var mainQuery = Parse.Query.or(q1,q2,q3);
mainQuery.find({
  success: function(results) {

  },
  error: function(error) {

  }
});

Android类似于javascript ..请参阅ParseQuery类中的“或”方法https://parse.com/docs/android/api/