GlideQueryCondition - Scoped
The scoped GlideQueryCondition API provides additional AND or OR conditions that can be added to the current condition, allowing you to build complex queries.
category='hardware' OR category='software' AND priority='2' AND priority='1'In the case of addCondition(), an implied AND is added.
- addActiveQuery()
- addInactiveQuery()
- addJoinQuery()
- addNotNullQuery()
- addNullQuery()
- addQuery()
If there is a complicated set of AND and OR queries, a single encoded query containing all conditions simplifies the query creation. To simplify the query creation, create a query in a list view,
right-click the query, and select Copy query. It creates a single encoded query string to return your result set. Use that string as a parameter in an addEncodedQuery() call.
Always test queries on a sub-production instance prior to deploying them on a production instance. An incorrectly constructed encoded query, such as including an invalid field name, produces an invalid query. When the invalid query is run, the invalid part of the query condition is dropped, and the results are based on the valid part of the query, which may return all records from the table. Using an insert(), update(), deleteRecord(), or deleteMultiple() method on bad query results can result in data loss.
You can set the glide.invalid_query.returns_no_rows system property to true to have queries with invalid encoded queries return no records. In some cases, the query may still return records in API results even when glide.invalid_query.returns_no_rows is set to true. This happens in queries where an invalid query term is used with a WHERE operator. In such queries, the WHERE operator ignores the invalid term(s) but still interprets and returns the rest of the query statement. For more information about this system property and its functionality, see Available system properties.
GlideQueryCondition - addCondition(String name, String oper, Object value)
Adds an AND condition to the current condition.
| Name | Type | Description |
|---|---|---|
| name | String | Name of a field. |
| oper | String | Optional. The operator for the query. If you do not specify an operator, the condition uses an equals operator. |
| value | Object | Value to query on. |
| Type | Description |
|---|---|
| GlideQueryCondition | Reference to a GlideQueryConditon that was added to the glide record. |
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(String name, String oper, Object value)
Appends a two-or-three parameter OR condition to an existing GlideQueryCondition.
addOrCondition() works in conjunction with any of the addQuery() methods to OR the specified query parameters to the query previously
constructed using addQuery().
addOrCondition() is typically called with three parameters; table field,
operator, and comparison value. It can be called with only two parameters, table field and
comparison value, such as qc.addOrCondition('category', 'software');. The
operator in this case is assumed to be "equal to".
| Name | Type | Description |
|---|---|---|
| name | String | Field name |
| oper | String | (Optional) Query operator. The available values are dependent on the data
type of the value parameter. Numbers:
Strings (must be in upper case):
|
| value | Object | Value on which to query (not case-sensitive). 注: All passed in arrays must
contain a minimum of two elements. Single element arrays are not
supported. |
| Type | Description |
|---|---|
| GlideQueryCondition | A reference to a GlideQueryConditon that was added to the GlideRecord. |
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());
To group AND/OR statements to make complex queries, such as "All incidents with a (state less than 3 OR greater than 5) AND (priority is 1 OR priority is 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();
GlideQueryCondition - addSystemCondition(String name, String oper, Object value)
Adds an AND condition to the current condition.
Explicitly bypasses query ACL checks. Use this method when system-level access is intended, ensuring the script's intent is clear. See also GlideQueryCondition - addUserCondition(String name, String oper, Object value).
| Name | Type | Description |
|---|---|---|
| name | String | Name of a field. |
| oper | String | Optional. The operator for the query. If you do not specify an operator, the condition uses an equals operator. |
| value | Object | Value to query on. |
| Type | Description |
|---|---|
| GlideQueryCondition | Reference to a GlideQueryConditon that was added to the glide record. |
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 - addSystemOrCondition(String name, String oper, Object value)
Appends a two-or-three parameter OR condition to an existing GlideQueryCondition.
Explicitly bypasses query ACL checks. Use this method when system-level access is intended, ensuring the script's intent is clear. See also GlideQueryCondition - addUserOrCondition(String name, String oper, Object value).
addSystemOrCondition() works in conjunction with any of the addSystemQuery() methods to OR the specified query parameters to the query previously constructed using addSystemQuery().
addSystemOrCondition() is typically called with three parameters; table field,
operator, and comparison value. It can be called with only two parameters, table field and
comparison value, such as qc.addSystemOrCondition('category', 'software');. The
operator in this case is assumed to be "equal to".
| Name | Type | Description |
|---|---|---|
| name | String | Field name |
| oper | String | (Optional) Query operator. The available values are dependent on the data
type of the value parameter. Numbers:
Strings (must be in upper case):
|
| value | Object | Value on which to query (not case-sensitive). 注: All passed in arrays must
contain a minimum of two elements. Single element arrays are not
supported. |
| Type | Description |
|---|---|
| GlideQueryCondition | A reference to a GlideQueryConditon that was added to the GlideRecord. |
var now_GR = new GlideRecord('incident');
var qc = now_GR.addQuery('category', 'Hardware');
qc.addSystemOrCondition('category', 'Network');
now_GR.addQuery('number','INC0000003');
now_GR.next();
now_GR.number;
gs.info(now_GR.getEncodedQuery());
To group AND/OR statements to make complex queries, such as "All incidents with a (state less than 3 OR greater than 5) AND (priority is 1 OR priority is 5)
var myObj = new GlideRecord('incident');
var q1 = myObj.addQuery('state', '<', 3);
q1.addSystemOrCondition('state', '>', 5);
var q2 = myObj.addQuery('priority', 1);
q2.addSystemOrCondition('priority', 5);
myObj.query();
GlideQueryCondition - addUserCondition(String name, String oper, Object value)
Adds an AND condition to the current condition.
| Name | Type | Description |
|---|---|---|
| name | String | Name of a field. |
| oper | String | Optional. The operator for the query. If you do not specify an operator, the condition uses an equals operator. |
| value | Object | Value to query on. |
| Type | Description |
|---|---|
| GlideQueryCondition | Reference to a GlideQueryConditon that was added to the glide record. |
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 - addUserOrCondition(String name, String oper, Object value)
Appends a two-or-three parameter OR condition to an existing GlideQueryCondition.
addOrCondition() works in conjunction with any of the addQuery() methods to OR the specified query parameters to the query previously
constructed using addQuery().
addOrCondition() is typically called with three parameters; table field,
operator, and comparison value. It can be called with only two parameters, table field and
comparison value, such as qc.addOrCondition('category', 'software');. The
operator in this case is assumed to be "equal to".
| Name | Type | Description |
|---|---|---|
| name | String | Field name |
| oper | String | (Optional) Query operator. The available values are dependent on the data
type of the value parameter. Numbers:
Strings (must be in upper case):
|
| value | Object | Value on which to query (not case-sensitive). 注: All passed in arrays must
contain a minimum of two elements. Single element arrays are not
supported. |
| Type | Description |
|---|---|
| GlideQueryCondition | A reference to a GlideQueryConditon that was added to the GlideRecord. |
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());
To group AND/OR statements to make complex queries, such as "All incidents with a (state less than 3 OR greater than 5) AND (priority is 1 OR priority is 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();