GlideQueryCondition - グローバル

  • リリースバージョン: Australia
  • 更新日 2026年03月12日
  • 所要時間:23分
  • この API は、現在の条件に追加できる AND または OR 条件を提供し、複雑なクエリーを作成できます。

    この API を使用して、次のような複雑なクエリを作成できます。
    category='hardware' OR category='software' AND priority='2' AND priority='1'

    addCondition() の場合、暗黙的な AND が追加されます。

    このクラスにはコンストラクターがありません。GlideQueryCondition オブジェクトは、次のメソッドによって返されます。
    • addActiveQuery()
    • addInactiveQuery()
    • addJoinQuery()
    • addNotNullQuery()
    • addNullQuery()
    • addQuery()

    AND および OR クエリーの複雑なセットがある場合は、すべての条件を含む単一のエンコードクエリーを使用すると、クエリーの作成が簡単になります。クエリの作成を簡略化するには、リストビューでクエリを作成し、クエリを右クリックして、[ クエリのコピー] を選択します。結果セットを返す単一のエンコードされたクエリ文字列を作成します。その文字列を addEncodedQuery() 呼び出しのパラメーターとして使用します。

    クエリを本番インスタンスに展開する前に、必ず準本番インスタンスでテストしてください。無効なフィールド名を含めるなど、エンコードされたクエリが正しく構築されていないと、無効なクエリが生成されます。無効なクエリが実行されると、クエリ条件の無効な部分が削除され、結果はクエリの有効な部分に基づいており、テーブルのすべてのレコードが返される場合があります。無効なクエリ結果で insert()update()、deleteRecord()、または deleteMultiple() メソッドを使用すると、データが失われる可能性があります。

    glide.invalid_query.returns_no_rows システムプロパティを true に設定すると、無効なエンコードクエリを含むクエリがレコードを返さないようにすることができます。場合によっては、 glide.invalid_query.returns_no_rows が true に設定されていても、クエリは API 結果のレコードを返すことがあります。これは、無効なクエリ用語が WHERE 演算子で使用されているクエリで発生します。このようなクエリでは、WHERE 演算子は無効な用語を無視しますが、クエリ ステートメントの残りの部分を解釈して返します。このシステムプロパティとその機能の詳細については、「 Available system properties」を参照してください。

    GlideQueryCondition - addCondition(文字列名, 文字列演算子, オブジェクト値)

    現在の条件に AND 条件を追加します。

    表 : 1. パラメーター
    名前 タイプ 説明
    name 文字列 フィールド名
    演算子 文字列 (オプション)クエリ演算子。使用可能な値は、 パラメーターのデータタイプによって異なります。

    演算子を指定しない場合、条件は等号演算子を使用します。

    番号:
    • =
    • !=
    • >
    • >=
    • <
    • <=
    文字列 (大文字である必要があります):
    • =
    • !=
    • IN
    • STARTSWITH
    • ENDSWITH
    • 次の値を含む
    • 次の値を含まない
    value オブジェクト クエリ対象の値 (大文字と小文字は区別されません)。
    注:
    渡されるすべての配列には、少なくとも 2 つの要素が含まれている必要があります。単一要素アレイはサポートされていません。
    表 : 2. 返される内容
    タイプ 説明
    GlideQueryCondition 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(文字列名, 文字列演算子, オブジェクト値)

    2 つまたは 3 つのパラメーターの OR 条件を既存の GlideQueryCondition に追加します。

    このメソッドは、GlideRecord addQuery() と連携して機能し、addQuery() を使用して以前に構築されたクエリに対して、または指定されたクエリパラメーターを呼び出します。

    addOrCondition() は、qc.addOrCondition('category', 'software'); のように、テーブルフィールドと比較値の 2 つのパラメーターのみで呼び出すことができます。この場合の演算子は「等しい」と見なされます。

    表 : 3. パラメーター
    名前 タイプ 説明
    name 文字列 フィールド名
    演算子 文字列 (オプション)クエリ演算子。使用可能な値は、 パラメーターのデータタイプによって異なります。

    演算子を指定しない場合、条件は等号演算子を使用します。

    番号:
    • =
    • !=
    • >
    • >=
    • <
    • <=
    文字列 (大文字である必要があります):
    • =
    • !=
    • IN
    • STARTSWITH
    • ENDSWITH
    • 次の値を含む
    • 次の値を含まない
    value オブジェクト クエリ対象の値 (大文字と小文字は区別されません)。
    注:
    渡されるすべての配列には、少なくとも 2 つの要素が含まれている必要があります。単一要素アレイはサポートされていません。
    表 : 4. 返される内容
    タイプ 説明
    GlideQueryCondition 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

    AND/OR ステートメントをグループ化して、(ステータスが 3 未満 OR greater than 5) AND (優先度が 1 OR 優先度が 5) のインシデントを 10 件取得するなど、複雑なクエリを作成します。

    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() クエリアクセスを強制するには、

    クエリー ACL チェックをバイパスするシステムレベルのアクセスのための追加の方法:
    表 : 5. パラメーター
    名前 タイプ 説明
    name 文字列 フィールド名
    演算子 文字列 (オプション)クエリ演算子。使用可能な値は、 パラメーターのデータタイプによって異なります。

    演算子を指定しない場合、条件は等号演算子を使用します。

    番号:
    • =
    • !=
    • >
    • >=
    • <
    • <=
    文字列 (大文字である必要があります):
    • =
    • !=
    • IN
    • STARTSWITH
    • ENDSWITH
    • 次の値を含む
    • 次の値を含まない
    value オブジェクト クエリ対象の値 (大文字と小文字は区別されません)。
    注:
    渡されるすべての配列には、少なくとも 2 つの要素が含まれている必要があります。単一要素アレイはサポートされていません。
    表 : 6. 返される内容
    タイプ 説明
    GlideQueryCondition GlideRecord に追加された GlideQueryConditon への参照。

    AND ステートメントをグループ化して、(ステータスが 3 未満かつ 2 ではない) かつ (優先度が 1 より大きいかつ優先度が 5 ではない) のインシデントを 20 件取得するなど、複雑なクエリを行うため。

    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(文字列名, 文字列演算子, オブジェクト値)

    2 つまたは 3 つのパラメーターの OR 条件を既存の GlideQueryCondition に追加します。 このメソッドを使用して、クエリーアクセスをバイパスします。

    システムレベルのアクセスが必要な場合は、このメソッドを使用して、クエリー ACL の適用がユーザーに対して明示的にバイパスされるようにします。クエリアクセスを強制するには、addUserOrCondition クエリアクセスを強制するには、

    クエリー ACL チェックをバイパスするシステムレベルのアクセスのための追加の方法:

    addSystemOrCondition() メソッドは、GlideRecord addSystemQuery() メソッドと連携して、指定されたクエリパラメーターを addSystemQuery() を使用して以前に構築したクエリに OR します。

    表 : 7. パラメーター
    名前 タイプ 説明
    name 文字列 フィールド名
    演算子 文字列 (オプション)クエリ演算子。使用可能な値は、 パラメーターのデータタイプによって異なります。

    演算子を指定しない場合、条件は等号演算子を使用します。

    番号:
    • =
    • !=
    • >
    • >=
    • <
    • <=
    文字列 (大文字である必要があります):
    • =
    • !=
    • IN
    • STARTSWITH
    • ENDSWITH
    • 次の値を含む
    • 次の値を含まない
    value オブジェクト クエリ対象の値 (大文字と小文字は区別されません)。
    注:
    渡されるすべての配列には、少なくとも 2 つの要素が含まれている必要があります。単一要素アレイはサポートされていません。
    表 : 8. 返される内容
    タイプ 説明
    GlideQueryCondition GlideRecord に追加された GlideQueryConditon への参照。

    AND/OR ステートメントをグループ化して、(state less than 3 OR greater than 5) AND (priority is 1 OR priority is 5) のインシデントを 20 件取得するなど、複雑なクエリを作成します。

    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. パラメーター
    名前 タイプ 説明
    name 文字列 フィールド名
    演算子 文字列 (オプション)クエリ演算子。使用可能な値は、 パラメーターのデータタイプによって異なります。

    演算子を指定しない場合、条件は等号演算子を使用します。

    番号:
    • =
    • !=
    • >
    • >=
    • <
    • <=
    文字列 (大文字である必要があります):
    • =
    • !=
    • IN
    • STARTSWITH
    • ENDSWITH
    • 次の値を含む
    • 次の値を含まない
    value オブジェクト クエリ対象の値 (大文字と小文字は区別されません)。
    注:
    渡されるすべての配列には、少なくとも 2 つの要素が含まれている必要があります。単一要素アレイはサポートされていません。
    表 : 10. 返される内容
    タイプ 説明
    GlideQueryCondition GlideRecord に追加された GlideQueryConditon への参照。

    AND ステートメントをグループ化して、(ステータスが 3 未満かつ 2 ではない) かつ (優先度が 1 より大きいかつ優先度が 5 ではない) のインシデントを 20 件取得するなど、複雑なクエリを行うため。

    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(文字列名, 文字列演算子, オブジェクト値)

    2 つまたは 3 つのパラメーターの OR 条件を既存の GlideQueryCondition に追加します。 このメソッドを使用して、ユーザーに基づいてクエリーアクセスを強制します。

    このメソッドは、現在のユーザーが (ACL に基づいて) クエリアクセス権を持つレコードのみを返します。

    addUserOrCondition() メソッドは、GlideRecord addUserQuery() メソッドと連携して、指定されたクエリパラメーターを addUserQuery() を使用して以前に構築したクエリに OR します。

    関連するメソッド:
    表 : 11. パラメーター
    名前 タイプ 説明
    name 文字列 フィールド名
    演算子 文字列 (オプション)クエリ演算子。使用可能な値は、 パラメーターのデータタイプによって異なります。

    演算子を指定しない場合、条件は等号演算子を使用します。

    番号:
    • =
    • !=
    • >
    • >=
    • <
    • <=
    文字列 (大文字である必要があります):
    • =
    • !=
    • IN
    • STARTSWITH
    • ENDSWITH
    • 次の値を含む
    • 次の値を含まない
    value オブジェクト クエリ対象の値 (大文字と小文字は区別されません)。
    注:
    渡されるすべての配列には、少なくとも 2 つの要素が含まれている必要があります。単一要素アレイはサポートされていません。
    表 : 12. 返される内容
    タイプ 説明
    GlideQueryCondition GlideRecord に追加された GlideQueryConditon への参照。

    AND/OR ステートメントをグループ化して、(state less than 3 OR greater than 5) AND (priority is 1 OR priority is 5) のインシデントを 20 件取得するなど、複雑なクエリを作成します。

    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