GlideQueryCondition - 전역

  • 릴리스 버전: Yokohama
  • 업데이트 날짜 2025년 01월 30일
  • 읽기5분
  • GlideQueryCondition API는 현재 조건에 추가할 수 있는 추가 AND 또는 OR 조건을 제공하여 복잡한 쿼리를 작성할 수 있도록 합니다.

    다음과 같은 복잡한 쿼리를 작성합니다.
    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 기록을 반환하지 않도록 할 수 있습니다. 경우에 따라 쿼리가 true로 설정된 경우에도 glide.invalid_query.returns_no_rows API 결과에 레코드를 반환할 수 있습니다. 이 문제는 잘못된 쿼리 용어가 WHERE 연산자와 함께 사용되는 쿼리에서 발생합니다. 이러한 쿼리에서 WHERE 연산자는 잘못된 용어를 무시하지만 나머지 쿼리 문을 해석하고 반환합니다. 이 시스템 속성 및 해당 기능에 대한 자세한 내용은 다음 문서를 참조하십시오 Available system properties.

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

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

    표 1. 매개변수
    이름 유형 설명
    이름 문자열 필드의 이름입니다.
    오퍼 문자열 (선택 사항) 쿼리의 연산자입니다. 연산자를 지정하지 않으면 등호 연산자가 사용됩니다.
    객체 쿼리할 값입니다.
    표 2. 반환
    유형 설명
    GlideQuery조건 GlideRecord에 추가된 GlideQueryConditon 에 대한 참조입니다.
    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());

    범위가 지정된 해당 항목

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

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

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

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

    addOrCondition() 은 일반적으로 세 개의 매개 변수를 사용하여 호출됩니다. 테이블 필드, 연산자 및 비교 값입니다. 테이블 필드와 비교 값이라는 두 개의 매개변수(예: qc.addOrCondition('category', 'software');)로만 호출할 수 있습니다. 이 경우 연산자는 "같음"으로 간주됩니다.

    표 3. 매개변수
    이름 유형 설명
    이름 문자열 필드 이름
    오퍼 문자열 (선택 사항) 쿼리 연산자입니다. 사용할 수 있는 값은 매개변수의 데이터 유형에 따라 다릅니다.
    숫자:
    • =
    • !=
    • >
    • >=
    • <
    • <=
    문자열(대문자여야 함):
    • =
    • !=
    • IN
    • STARTSWITH
    • ENDSWITH
    • 포함
    • DOESNOTCONTAIN
    객체 쿼리할 값(대/소문자 구분 없음)입니다.
    주:
    배열에 전달된 모든 요소에는 최소 두 개의 요소가 포함되어야 합니다. 단일 요소 배열은 지원되지 않습니다.
    표 4. 반환
    유형 설명
    GlideQuery조건 GlideRecord에 추가된 GlideQueryConditon에 대한 참조입니다.
    var now_GR = new GlideRecord('incident');
    var qc = now_GR.addQuery('category', 'Hardware');
    qc.addOrCondition('category', 'Network');
    now_GR.addQuery('number','INC0000003');
    now_GR.next();
    now_GR.number;
    gs.info(now_GR.getEncodedQuery());
    

    (state < 3 OR state > 5) AND (priority = 1 OR priority = 5)와 같은 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.query();

    범위가 지정된 해당 항목

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