GlideQueryCondition - 전역

  • 릴리스 버전: Australia
  • 업데이트 날짜 2026년 03월 12일
  • 소요 시간: 21분
  • 이 API는 현재 조건에 추가할 수 있는 AND 또는 OR 조건을 제공하므로 복잡한 쿼리를 작성할 수 있습니다.

    이 API를 사용하여 다음과 같은 복잡한 쿼리를 작성할 수 있습니다.
    category='hardware' OR category='software' AND priority='2' AND priority='1'

    addCondition()의 경우 암시적 AND가 추가됩니다.

    이 클래스에는 생성자가 없습니다. GlideQueryCondition 객체는 다음 방법으로 반환됩니다.
    • addActiveQuery()
    • addInactiveQuery()
    • addJoinQuery()
    • addNotNullQuery()
    • addNullQuery()
    • addQuery()

    복잡한 ANDOR 쿼리 집합이 있는 경우 모든 조건을 포함하는 인코딩된 단일 쿼리를 사용하면 쿼리 생성이 간소화됩니다. 쿼리 생성을 단순화하려면 목록 뷰에서 쿼리를 만들고, 쿼리를 마우스 오른쪽 단추로 클릭하고, 쿼리 복사를 선택합니다. 결과 세트를 반환하기 위해 인코딩된 단일 쿼리 문자열을 생성합니다. addEncodedQuery() 호출에서 해당 문자열을 매개변수로 사용합니다.

    프로덕션 인스턴스에 쿼리를 배포하기 전에 항상 하위 프로덕션 인스턴스에서 쿼리를 테스트합니다. 잘못된 필드 이름을 포함하는 등 잘못 구성된 인코딩된 쿼리는 잘못된 쿼리를 생성합니다. 잘못된 쿼리가 실행되면 쿼리 조건의 잘못된 부분이 삭제되고 결과는 쿼리의 유효한 부분을 기반으로 하므로 테이블에서 모든 기록이 반환될 수 있습니다. 잘못된 쿼리 결과에 대해 insert(), update(), deleteRecord() 또는 deleteMultiple() 메서드를 사용하면 데이터가 손실될 수 있습니다.

    시스템 속성을 true로 설정 glide.invalid_query.returns_no_rows 하여 잘못된 인코딩된 쿼리가 있는 쿼리가 기록을 반환하지 않도록 할 수 있습니다. 예로 설정된 경우에도 glide.invalid_query.returns_no_rows 쿼리가 API 결과에 기록을 반환하는 경우도 있습니다. 이는 잘못된 쿼리 용어가 WHERE 연산자와 함께 사용되는 쿼리에서 발생합니다. 이러한 쿼리에서 WHERE 연산자는 잘못된 용어를 무시하지만 쿼리문의 나머지 부분을 해석하고 반환합니다. 이 시스템 속성 및 해당 기능에 대한 자세한 내용은 다음 문서를 참조하십시오 Available system properties.

    GlideQueryCondition - addCondition(문자열 이름, 문자열 피퍼, 객체 값)

    현재 조건에 AND 조건을 추가합니다.

    표 1. 매개변수
    이름 유형 설명
    이름 문자열 필드 이름
    운영 문자열 (선택 사항) 쿼리 연산자입니다. 사용 가능한 값은 매개변수의 데이터 유형에 따라 다릅니다.

    연산자를 지정하지 않으면 조건에 같음 연산자가 사용됩니다.

    숫자:
    • =
    • !=
    • >
    • >=
    • <
    • <=
    문자열(대문자여야 함):
    • =
    • !=
    • 안에
    • 시작
    • 포함
    • DOESNNOTCONTAIN
    객체 쿼리할 값입니다(대/소문자 구분 없음).
    주:
    배열에 전달된 모든 요소에는 최소 2개의 요소가 포함되어야 합니다. 단일 요소 배열은 지원되지 않습니다.
    표 2. 반환
    유형 설명
    GlideQuery조건 GlideRecord에 추가된 GlideQueryConditon에 대한 참조입니다.

    다음 예제는 쿼리에 AND 조건을 추가하는 방법을 보여줍니다.

    var now_GR = new GlideRecord('incident');
    var qc = now_GR.addQuery('category', 'Hardware');
    qc.addCondition('category', 'Network');
    now_GR.addQuery('number','INC0000003');
    now_GR.next();
    now_GR.number;
    gs.info(now_GR.getEncodedQuery());

    출력:

    category=Hardware^ORcategory=Network^number=INC0000003

    범위가 지정된 해당 항목

    범위가 지정된 애플리케이션에서 addCondition() 메서드를 사용하려면 해당하는 범위가 지정된 메서드인 addCondition()을 사용합니다.

    GlideQueryCondition - addOrCondition(문자열 이름, 문자열 연산자, 객체 값)

    기존 GlideQueryCondition에 두 개 또는 세 개의 매개변수 OR 조건을 추가합니다.

    이 메서드는 GlideRecord addQuery()와 함께 작동하여 지정된 쿼리 매개변수를 addQuery()를 사용하여 이전에 구성된 쿼리에 대해 또는 지정합니다.

    addOrCondition()qc.addOrCondition('category', 'software');과 같은 테이블 필드 및 비교 값의 두 개의 매개변수로만 호출할 수 있습니다. 이 경우 연산자는 "같음"으로 가정합니다.

    표 3. 매개변수
    이름 유형 설명
    이름 문자열 필드 이름
    운영 문자열 (선택 사항) 쿼리 연산자입니다. 사용 가능한 값은 매개변수의 데이터 유형에 따라 다릅니다.

    연산자를 지정하지 않으면 조건에 같음 연산자가 사용됩니다.

    숫자:
    • =
    • !=
    • >
    • >=
    • <
    • <=
    문자열(대문자여야 함):
    • =
    • !=
    • 안에
    • 시작
    • 포함
    • DOESNNOTCONTAIN
    객체 쿼리할 값입니다(대/소문자 구분 없음).
    주:
    배열에 전달된 모든 요소에는 최소 2개의 요소가 포함되어야 합니다. 단일 요소 배열은 지원되지 않습니다.
    표 4. 반환
    유형 설명
    GlideQuery조건 GlideRecord에 추가된 GlideQueryConditon에 대한 참조입니다.

    다음 예제에서는 쿼리에 OR 조건을 추가하는 방법을 보여줍니다.

    var now_GR = new GlideRecord('incident');
    var qc = now_GR.addQuery('category', 'Hardware');
    qc.addOrCondition('category', 'Network');
    now_GR.addQuery('number','INC0000004');
    now_GR.next();
    now_GR.number;
    gs.info(now_GR.getEncodedQuery());

    출력:

    category=Hardware^ORcategory=Network^number=INC0000004

    (상태가 3보다 작거나 5보다 큼) AND (우선순위가 1 OR 우선순위가 5임)인 인시던트 10개를 얻는 것과 같은 복잡한 쿼리를 만들기 위해 AND/OR 문을 그룹화합니다.

    var myObj = new GlideRecord('incident');
    var q1 = myObj.addQuery('state', '<', 3);
    q1.addOrCondition('state', '>', 5);
    var q2 = myObj.addQuery('priority', 1);
    q2.addOrCondition('priority', 5);
    myObj.setLimit(10);
    myObj.query();
    
    while (myObj.next()) {
      gs.info('Incident: ' + myObj.getValue('number') + ' State: ' + myObj.getValue('state') + ' Priority: ' + myObj.getValue('priority'));
    }

    출력:

    Incident: INC0000001 State: 7 Priority: 1
    Incident: INC0000004 State: 7 Priority: 1
    Incident: INC0000012 State: 7 Priority: 5
    Incident: INC0000013 State: 7 Priority: 1
    Incident: INC0000024 State: 7 Priority: 5
    Incident: INC0000028 State: 7 Priority: 5
    Incident: INC0000031 State: 2 Priority: 1
    Incident: INC0000057 State: 7 Priority: 5
    Incident: INC0000057 State: 2 Priority: 5
    Incident: INC0000058 State: 7 Priority: 5

    범위가 지정된 해당 항목

    범위가 지정된 애플리케이션에서 addOrCondition() 메서드를 사용하려면 해당하는 범위가 지정된 메서드인 addOrCondition()을 사용합니다.

    GlideQueryCondition - addSystemCondition(문자열 이름, 문자열 작업자, 객체 값)

    현재 조건에 AND 조건을 추가합니다. 이 메서드를 사용하여 쿼리 액세스를 바이패스합니다.

    시스템 수준 액세스가 필요한 경우 이 메서드를 사용하여 사용자에 대한 쿼리 ACL 적용을 명시적으로 바이패스합니다. 링크를 사용하여 addUserCondition() 쿼리 접근을 적용합니다.

    표 5. 매개변수
    이름 유형 설명
    이름 문자열 필드 이름
    운영 문자열 (선택 사항) 쿼리 연산자입니다. 사용 가능한 값은 매개변수의 데이터 유형에 따라 다릅니다.

    연산자를 지정하지 않으면 조건에 같음 연산자가 사용됩니다.

    숫자:
    • =
    • !=
    • >
    • >=
    • <
    • <=
    문자열(대문자여야 함):
    • =
    • !=
    • 안에
    • 시작
    • 포함
    • DOESNNOTCONTAIN
    객체 쿼리할 값입니다(대/소문자 구분 없음).
    주:
    배열에 전달된 모든 요소에는 최소 2개의 요소가 포함되어야 합니다. 단일 요소 배열은 지원되지 않습니다.
    표 6. 반환
    유형 설명
    GlideQuery조건 GlideRecord에 추가된 GlideQueryConditon에 대한 참조입니다.

    (상태가 3보다 작고 2가 아님) 및 (우선순위가 1보다 크고 우선순위가 5가 아님)인 20개의 인시던트를 얻는 것과 같은 복잡한 쿼리를 만들기 위해 AND 문을 그룹화합니다.

    var myObj = new GlideRecord('incident');
    var q1 = myObj.addSystemQuery('state', '<', 3);
    q1.addSystemCondition('state', '!=', 2);
    var q2 = myObj.addSystemQuery('priority', '>', 1);
    q2.addSystemCondition('priority', '!=', 5);
    myObj.setLimit(20);
    myObj.query();
    
    while (myObj.next()) {
      gs.info('Incident: ' + myObj.getValue('number') + ' State: ' + myObj.getValue('state') + ' Priority: ' + myObj.getValue('priority'));
    }

    출력:

    Incident: INC0011238 State: 1 Priority: 4
    Incident: INC0010127 State: 1 Priority: 2
    Incident: INC0010143 State: 1 Priority: 2
    Incident: INC0011760 State: 1 Priority: 2
    Incident: INC0010708 State: 1 Priority: 3
    Incident: INC0013048 State: 1 Priority: 4
    Incident: INC0010658 State: 1 Priority: 2
    Incident: INC0012021 State: 1 Priority: 3
    Incident: INC0013308 State: 1 Priority: 4
    Incident: INC0010155 State: 1 Priority: 3
    Incident: INC0013312 State: 1 Priority: 4
    Incident: INC0013049 State: 1 Priority: 3
    Incident: INC0010068 State: 1 Priority: 4
    Incident: INC0010135 State: 1 Priority: 2
    Incident: INC0010132 State: 1 Priority: 4
    Incident: INC0010700 State: 1 Priority: 3
    Incident: INC0013311 State: 1 Priority: 2
    Incident: INC0011758 State: 1 Priority: 4
    Incident: INC0012278 State: 1 Priority: 3
    Incident: INC0013306 State: 1 Priority: 4

    GlideQueryCondition - addSystemOrCondition(문자열 이름, 문자열 피퍼, 객체 값)

    기존 GlideQueryCondition에 두 개 또는 세 개의 매개변수 OR 조건을 추가합니다. 이 메서드를 사용하여 쿼리 액세스를 바이패스합니다.

    시스템 수준 액세스가 필요한 경우 이 메서드를 사용하여 사용자에 대한 쿼리 ACL 적용을 명시적으로 바이패스합니다. 링크를 사용하여 addUserOrCondition 쿼리 접근을 적용합니다.

    addSystemOrCondition() 메서드는 GlideRecord addSystemQuery() 메서드와 함께 작동하여addSystemQuery()를 사용하여 이전에 구성된 쿼리에 지정된 쿼리 매개변수를 추가합니다.

    표 7. 매개변수
    이름 유형 설명
    이름 문자열 필드 이름
    운영 문자열 (선택 사항) 쿼리 연산자입니다. 사용 가능한 값은 매개변수의 데이터 유형에 따라 다릅니다.

    연산자를 지정하지 않으면 조건에 같음 연산자가 사용됩니다.

    숫자:
    • =
    • !=
    • >
    • >=
    • <
    • <=
    문자열(대문자여야 함):
    • =
    • !=
    • 안에
    • 시작
    • 포함
    • DOESNNOTCONTAIN
    객체 쿼리할 값입니다(대/소문자 구분 없음).
    주:
    배열에 전달된 모든 요소에는 최소 2개의 요소가 포함되어야 합니다. 단일 요소 배열은 지원되지 않습니다.
    표 8. 반환
    유형 설명
    GlideQuery조건 GlideRecord에 추가된 GlideQueryConditon에 대한 참조입니다.

    (상태가 3보다 작거나 5보다 큼) AND (우선순위는 1 또는 우선순위가 5인 20개의 인시던트를 얻는 것처럼) 복잡한 쿼리를 만들기 위해 AND/OR 문을 그룹화합니다.

    var myObj = new GlideRecord('incident');
    var q1 = myObj.addSystemQuery('state', '<', 3);
    q1.addSystemOrCondition('state', '>', 5);
    var q2 = myObj.addSystemQuery('priority', 1);
    q2.addSystemOrCondition('priority', 5);
    myObj.setLimit(20);
    myObj.query();
    
    while (myObj.next()) {
      gs.info('Incident: ' + myObj.getValue('number') + ' State: ' + myObj.getValue('state') + ' Priority: ' + myObj.getValue('priority'));
    }

    출력:

    Incident: INC0000001 State: 7 Priority: 1
    Incident: INC0000004 State: 7 Priority: 1
    Incident: INC0000012 State: 7 Priority: 5
    Incident: INC0000013 State: 7 Priority: 1
    Incident: INC0000024 State: 7 Priority: 5
    Incident: INC0000028 State: 7 Priority: 5
    Incident: INC0000031 State: 2 Priority: 1
    Incident: INC0000057 State: 7 Priority: 5
    Incident: INC0000057 State: 2 Priority: 5
    Incident: INC0000058 State: 7 Priority: 5
    Incident: INC0000058 State: 2 Priority: 5
    Incident: INC0000059 State: 7 Priority: 5
    Incident: INC0000060 State: 7 Priority: 5
    Incident: INC0000061 State: 7 Priority: 5
    Incident: INC0000062 State: 7 Priority: 5
    Incident: INC0000064 State: 7 Priority: 5
    Incident: INC0000065 State: 7 Priority: 5
    Incident: INC0000066 State: 7 Priority: 5
    Incident: INC0000069 State: 7 Priority: 5
    Incident: INC0000072 State: 7 Priority: 5

    GlideQueryCondition - addUserCondition(문자열 이름, 문자열 피퍼, 객체 값)

    현재 조건에 AND 조건을 추가합니다. 이 메서드를 사용하여 사용자에 따라 쿼리 액세스를 적용합니다.

    이 메서드는 현재 사용자가 (ACL 기반) 쿼리 액세스 권한이 있는 레코드만 반환합니다.

    관련 메서드:
    표 9. 매개변수
    이름 유형 설명
    이름 문자열 필드 이름
    운영 문자열 (선택 사항) 쿼리 연산자입니다. 사용 가능한 값은 매개변수의 데이터 유형에 따라 다릅니다.

    연산자를 지정하지 않으면 조건에 같음 연산자가 사용됩니다.

    숫자:
    • =
    • !=
    • >
    • >=
    • <
    • <=
    문자열(대문자여야 함):
    • =
    • !=
    • 안에
    • 시작
    • 포함
    • DOESNNOTCONTAIN
    객체 쿼리할 값입니다(대/소문자 구분 없음).
    주:
    배열에 전달된 모든 요소에는 최소 2개의 요소가 포함되어야 합니다. 단일 요소 배열은 지원되지 않습니다.
    표 10. 반환
    유형 설명
    GlideQuery조건 GlideRecord에 추가된 GlideQueryConditon에 대한 참조입니다.

    (상태가 3보다 작고 2가 아님) 및 (우선순위가 1보다 크고 우선순위가 5가 아님)인 20개의 인시던트를 얻는 것과 같은 복잡한 쿼리를 만들기 위해 AND 문을 그룹화합니다.

    var myObj = new GlideRecord('incident');
    var q1 = myObj.addUserQuery('state', '<', 3);
    q1.addUserCondition('state', '!=', 2);
    var q2 = myObj.addUserQuery('priority', '>', 1);
    q2.addUserCondition('priority', '!=', 5);
    myObj.setLimit(20);
    myObj.query();
    
    while (myObj.next()) {
      gs.info('Incident: ' + myObj.getValue('number') + ' State: ' + myObj.getValue('state') + ' Priority: ' + myObj.getValue('priority'));
    }

    출력:

    Incident: INC0011238 State: 1 Priority: 4
    Incident: INC0010127 State: 1 Priority: 2
    Incident: INC0010143 State: 1 Priority: 2
    Incident: INC0011760 State: 1 Priority: 2
    Incident: INC0010708 State: 1 Priority: 3
    Incident: INC0013048 State: 1 Priority: 4
    Incident: INC0010658 State: 1 Priority: 2
    Incident: INC0012021 State: 1 Priority: 3
    Incident: INC0013308 State: 1 Priority: 4
    Incident: INC0010155 State: 1 Priority: 3
    Incident: INC0013312 State: 1 Priority: 4
    Incident: INC0013049 State: 1 Priority: 3
    Incident: INC0010068 State: 1 Priority: 4
    Incident: INC0010135 State: 1 Priority: 2
    Incident: INC0010132 State: 1 Priority: 4
    Incident: INC0010700 State: 1 Priority: 3
    Incident: INC0013311 State: 1 Priority: 2
    Incident: INC0011758 State: 1 Priority: 4
    Incident: INC0012278 State: 1 Priority: 3
    Incident: INC0013306 State: 1 Priority: 4

    GlideQueryCondition - addUserOrCondition(문자열 이름, 문자열 피퍼, 객체 값)

    기존 GlideQueryCondition에 두 개 또는 세 개의 매개변수 OR 조건을 추가합니다. 이 메서드를 사용하여 사용자에 따라 쿼리 액세스를 적용합니다.

    이 메서드는 현재 사용자가 (ACL 기반) 쿼리 액세스 권한이 있는 레코드만 반환합니다.

    addUserOrCondition() 메서드는 GlideRecord addUserQuery() 메서드와 함께 작동하여addUserQuery()를 사용하여 이전에 구성된 쿼리에 지정된 쿼리 매개변수를 추가합니다.

    관련 메서드:
    표 11. 매개변수
    이름 유형 설명
    이름 문자열 필드 이름
    운영 문자열 (선택 사항) 쿼리 연산자입니다. 사용 가능한 값은 매개변수의 데이터 유형에 따라 다릅니다.

    연산자를 지정하지 않으면 조건에 같음 연산자가 사용됩니다.

    숫자:
    • =
    • !=
    • >
    • >=
    • <
    • <=
    문자열(대문자여야 함):
    • =
    • !=
    • 안에
    • 시작
    • 포함
    • DOESNNOTCONTAIN
    객체 쿼리할 값입니다(대/소문자 구분 없음).
    주:
    배열에 전달된 모든 요소에는 최소 2개의 요소가 포함되어야 합니다. 단일 요소 배열은 지원되지 않습니다.
    표 12. 반환
    유형 설명
    GlideQuery조건 GlideRecord에 추가된 GlideQueryConditon에 대한 참조입니다.

    (상태가 3보다 작거나 5보다 큼) AND (우선순위는 1 또는 우선순위가 5인 20개의 인시던트를 얻는 것처럼) 복잡한 쿼리를 만들기 위해 AND/OR 문을 그룹화합니다.

    var myObj = new GlideRecord('incident');
    var q1 = myObj.addUserQuery('state', '<', 3);
    q1.addUserOrCondition('state', '>', 5);
    var q2 = myObj.addUserQuery('priority', 1);
    q2.addUserOrCondition('priority', 5);
    myObj.setLimit(20);
    myObj.query();
    
    while (myObj.next()) {
      gs.info('Incident: ' + myObj.getValue('number') + ' State: ' + myObj.getValue('state') + ' Priority: ' + myObj.getValue('priority'));
    }

    출력:

    Incident: INC0000001 State: 7 Priority: 1
    Incident: INC0000004 State: 7 Priority: 1
    Incident: INC0000012 State: 7 Priority: 5
    Incident: INC0000013 State: 7 Priority: 1
    Incident: INC0000024 State: 7 Priority: 5
    Incident: INC0000028 State: 7 Priority: 5
    Incident: INC0000031 State: 2 Priority: 1
    Incident: INC0000057 State: 7 Priority: 5
    Incident: INC0000057 State: 2 Priority: 5
    Incident: INC0000058 State: 7 Priority: 5
    Incident: INC0000058 State: 2 Priority: 5
    Incident: INC0000059 State: 7 Priority: 5
    Incident: INC0000060 State: 7 Priority: 5
    Incident: INC0000061 State: 7 Priority: 5
    Incident: INC0000062 State: 7 Priority: 5
    Incident: INC0000064 State: 7 Priority: 5
    Incident: INC0000065 State: 7 Priority: 5
    Incident: INC0000066 State: 7 Priority: 5
    Incident: INC0000069 State: 7 Priority: 5
    Incident: INC0000072 State: 7 Priority: 5