function Sql::add_where in Views (for Drupal 7) 8.3
Add a simple WHERE clause to the query. The caller is responsible for ensuring that all fields are fully qualified (TABLE.FIELD) and that the table already exists in the query.
$this->query
->add_where($this->options['group'], db_or()
->condition($field, $value, 'NOT IN')
->condition($field, $value, 'IS NULL'));
Parameters
$group: The WHERE group to add these to; groups are used to create AND/OR sections. Groups cannot be nested. Use 0 as the default group. If the group does not yet exist it will be created as an AND group.
$field: The name of the field to check.
$value: The value to test the field against. In most cases, this is a scalar. For more complex options, it is an array. The meaning of each element in the array is dependent on the $operator.
$operator: The comparison operator, such as =, <, or >=. It also accepts more complex options such as IN, LIKE, or BETWEEN. Defaults to IN if $value is an array = otherwise. If $field is a string you have to use 'formula' here.
The $field, $value and $operator arguments can also be passed in with a single DatabaseCondition object, like this:
See also
Drupal\Core\Database\Query\ConditionInterface::condition()
Drupal\Core\Database\Query\Condition
File
- lib/
Drupal/ views/ Plugin/ views/ query/ Sql.php, line 834 - Definition of Drupal\views\Plugin\views\query\Sql.
Class
- Sql
- @todo.
Namespace
Drupal\views\Plugin\views\queryCode
function add_where($group, $field, $value = NULL, $operator = NULL) {
// Ensure all variants of 0 are actually 0. Thus '', 0 and NULL are all
// the default group.
if (empty($group)) {
$group = 0;
}
// Check for a group.
if (!isset($this->where[$group])) {
$this
->set_where_group('AND', $group);
}
$this->where[$group]['conditions'][] = array(
'field' => $field,
'value' => $value,
'operator' => $operator,
);
}