GlideQueryCondition - 범위 지정됨
범위가 지정된 GlideQueryCondition API는 현재 조건에 추가할 수 있는 추가 AND 또는 OR 조건을 제공하므로 복잡한 쿼리를 작성할 수 있습니다.
category='hardware' OR category='software' AND priority='2' AND priority='1'addCondition()의 경우 암시적 AND가 추가됩니다.
- addActiveQuery()를 호출합니다.
- addInactiveQuery()를 호출합니다.
- addJoinQuery()를 호출합니다.
- addNotNull쿼리()
- addNull쿼리()
- addQuery()를 호출합니다.
복잡한 AND 및 OR 쿼리 집합이 있는 경우 모든 조건을 포함하는 인코딩된 단일 쿼리를 사용하면 쿼리 만들기가 간소화됩니다. 쿼리 만들기를 간소화하려면 목록 보기에서 쿼리를 만들고, 쿼리를 마우스 오른쪽 단추로 클릭하고, 쿼리 복사를 선택합니다. 결과 집합을 반환하기 위해 인코딩된 단일 쿼리 문자열을 만듭니다. 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 조건을 추가합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 이름 | 문자열 | 필드의 이름입니다. |
| 운영 | 문자열 | 옵션입니다. 쿼리의 연산자입니다. 연산자를 지정하지 않으면 조건에서 같음 연산자를 사용합니다. |
| 값 | 객체 | 쿼리할 값입니다. |
| 유형 | 설명 |
|---|---|
| GlideQueryCondition | Glide 기록에 추가된 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());
GlideQueryCondition - addOrCondition(문자열 이름, 문자열 작동, 객체 값)
두 개 또는 세 개의 매개변수 OR 조건을 기존 GlideQueryCondition에 추가합니다.
addOrCondition()은 addQuery() 메서드와 함께 작동하여 addQuery()를 사용하여 이전에 생성된 쿼리에 지정된 쿼리 매개 변수를 OR로 만듭니다.
addOrCondition() 은 일반적으로 세 개의 매개 변수로 호출됩니다. 테이블 필드, 연산자 및 비교 값입니다. qc.addOrCondition('category', 'software');와 같은 두 개의 매개 변수, 테이블 필드 및 비교 값으로만 호출할 수 있습니다. 이 경우 연산자는 "같음"으로 간주됩니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 이름 | 문자열 | 필드 이름 |
| 운영 | 문자열 | (선택 사항) 쿼리 연산자입니다. 사용 가능한 값은 value 매개변수의 데이터 유형에 따라 다릅니다. 숫자:
문자열(대문자여야 함):
|
| 값 | 객체 | 쿼리할 값(대/소문자 구분 안 함)입니다. 주: 배열에 전달된 모든 요소에는 최소 두 개의 요소가 포함되어야 합니다. 단일 요소 배열은 지원되지 않습니다. |
| 유형 | 설명 |
|---|---|
| GlideQueryCondition | 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());
AND/OR 문을 그룹화하여 "(상태가 3보다 작거나 5보다 큼) AND (우선순위가 1 OR 우선순위가 5임)인 모든 인시던트
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();