GlideQueryCondition - グローバル
GlideQueryCondition API には、現在の条件に追加できる追加の AND 条件または OR 条件が用意されており、複雑なクエリーを作成することができます。
category='hardware' OR category='software' AND priority='2' AND priority='1'addCondition() の場合、暗黙の AND が追加されます。
- 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(文字列 name, 文字列 oper, オブジェクト value)
現在の条件に AND 条件を追加します。
| 名前 | タイプ | 説明 |
|---|---|---|
| name | 文字列 | フィールドの名前。 |
| oper | 文字列 | (オプション) クエリの演算子。演算子を指定しない場合、条件は equals 演算子を使用します。 |
| value | オブジェクト | クエリする値。 |
| タイプ | 説明 |
|---|---|
| GlideQueryCondition | 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(文字列 name, 文字列 oper, オブジェクト value)
2 つまたは 3 つのパラメーターの OR 条件を既存の GlideQueryCondition に追加します。
addOrCondition() は、以前に addQuery() を使用して構築されたクエリへの指定されたクエリパラメーター OR に対し、任意の addQuery() メソッドと連携して動作します。
addOrCondition() は通常、3 つのパラメーター (テーブルフィールド、演算子、および比較値) を指定して呼び出されます。qc.addOrCondition('category', 'software'); など、テーブルフィールドと比較値の 2 つのパラメーターのみを使用して呼び出すことができます。この場合の演算子は「次の値に等しい」とみなされます。
| 名前 | タイプ | 説明 |
|---|---|---|
| name | 文字列 | フィールド名 |
| oper | 文字列 | (オプション) クエリ演算子。使用可能な値は、value パラメーターのデータタイプによって異なります。 数値:
文字列 (大文字である必要があります):
|
| value | オブジェクト | クエリ対象の値 (大文字と小文字は区別されません)。 注: 渡されるすべてのアレイには、少なくとも 2 つの要素が含まれている必要があります。単一要素のアレイはサポートされていません。 |
| タイプ | 説明 |
|---|---|
| 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());
(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() を使用します。