OR条件を使用してdb_updateの複数の条件を行う方法は?


7

ORデフォルトのAND条件の代わりに使用して、次のUpdateQueryステートメントを複数の条件で動作するように変換したいと思います。

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

それが可能だ?

回答:


8

Drupal 7

はい、以下の例のようにdb_or()DatabaseConditionを使用することで可能です。

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

db_selectについても同様です。db_select()の「OR」条件と、db_selectでのネストされたORおよびAND条件

参照:StackOverflow でのdb_updateの複数の条件


Drupal 8

db_or()Drupal 7と同様に引き続き使用できますが、Drupal 8.0.xで非推奨になり、Drupal 9.0.0で削除されます。

論理積を\Drupal\Core\Database\Query\Condition指定しORてオブジェクトを作成しますnew Condition('OR')db_or()

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.