You are here

function Sql::add_where_expression in Views (for Drupal 7) 8.3

Add a complex WHERE clause to the query.

The caller is reponsible for ensuring that all fields are fully qualified (TABLE.FIELD) and that the table already exists in the query. Internally the dbtng method "where" is used.

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.

$snippet: The snippet to check. This can be either a column or a complex expression like "UPPER(table.field) = 'value'"

$args: An associative array of arguments.

See also

QueryConditionInterface::where()

File

lib/Drupal/views/Plugin/views/query/Sql.php, line 872
Definition of Drupal\views\Plugin\views\query\Sql.

Class

Sql
@todo.

Namespace

Drupal\views\Plugin\views\query

Code

function add_where_expression($group, $snippet, $args = array()) {

  // 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' => $snippet,
    'value' => $args,
    'operator' => 'formula',
  );
}