Wie werden mehrere Bedingungen für db_update mithilfe der ODER-Bedingung ausgeführt?

7

Ich möchte die folgende UpdateQuery-Anweisung so konvertieren, dass sie mit mehreren Bedingungen funktioniert, indem ORanstelle der Standardbedingung Folgendes verwendet ANDwird:

  db_update('system')
    ->fields(array('status' => 1))
    ->condition('type', 'theme')
    ->condition('name', 'seven') // OR
    ->condition('name', 'rubik')
    ->execute();

Es ist möglich?

Kenorb
quelle

Antworten:

8

Drupal 7

Ja, es ist möglich, db_or () DatabaseCondition als Beispiel unten zu verwenden:

  db_update('system')
    ->fields(array('status' => 1))
    ->condition('type', 'theme')
    ->condition(db_or()
      ->condition('name', 'seven')
      ->condition('name', 'rubik')
    )
    ->execute();

Ähnliches gilt für db_select, siehe: "OR" -Bedingung in db_select () und verschachtelte OR- und AND-Bedingung in db_select

Siehe auch: Mehrere Bedingungen für db_update bei StackOverflow


Drupal 8

Sie können weiterhin db_or()wie in Drupal 7 verwenden, es ist jedoch ab Drupal 8.0.x veraltet und wird in Drupal 9.0.0 entfernt.

Erstellen Sie ein \Drupal\Core\Database\Query\ConditionObjekt unter Angabe einer ORKonjunktion : new Condition('OR'); db_or ()

Kenorb
quelle