2014-09-08 3 views
2

이것은 내 첫 번째 게시물입니다. Parse.com으로 첫 걸음을 내딛겠습니다. 지금은 해결할 수 없었던 문제로 고생하고 있습니다. 질문하기 이전에 나는 해결책을 찾고 있었지만 아무 것도 발견하지 못했습니다.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) 

어떤 아이디어? 미리 감사드립니다. 당신이 아이폰 OS에있는 경우

+0

나는 3 개의 별도의 쿼리를해야 할 것 같아요. 아마도 CloudCode 함수가 가장 좋은 방법 일 것입니다. – Dehli

+0

자바 스크립트 또는 모바일에서 작업하고 있습니까? – ccwasden

+0

3 가지 다른 쿼리를 수행하는 것이 처음 생각 이었지만 더 나은 방법이 필요했습니다. 더 나아가, "우아"하지 않을 것이며 Parse의 무료 계정을 사용할 때 요청 수가 제한됩니다. ccwasden 응답이 정상적으로 작동했습니다. 어쨌든 고맙습니다. –

답변

2

, 당신은이 작업을 수행 할 수 있습니다

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); 
}]; 

자바 스크립트,이 작업을 수행 할 경우

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) { 

    } 
}); 

안드로이드가 자바 스크립트와 비슷합니다 .. ParseQuery에서 "또는"메서드를 참조하십시오 여기에 클래스 https://parse.com/docs/android/api/

+0

답변 해 주셔서 대단히 감사합니다. 나는 물어보기 전에 웹을 검색했는데, 내가 처음 보았던 곳은 파스의 API였다. 나는 "또는"함수를 찾지 못했다. 나는 당신이 그랬던 것처럼 자바 스크립트에서 사용되는 것을 보았지만 안드로이드에서 볼 수는 없었다. 나는 오늘 오후에 그것을 시도 할 것이다. –

+0

완벽하게 작동했습니다. 고맙습니다. –