Làm cách nào để thực hiện nhiều điều kiện cho db_update bằng cách sử dụng điều kiện OR?


7

Tôi muốn chuyển đổi câu lệnh UpdateQuery sau để hoạt động với nhiều điều kiện bằng cách sử dụng ORthay vì ANDđiều kiện mặc định :

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

Có thể không?

Câu trả lời:


8

Drupal 7

Có, có thể bằng cách sử dụng db_or () DatabaseCondition như ví dụ dưới đây:

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

Tương tự đối với db_select, hãy xem: điều kiện "OR" trong db_select ()điều kiện OR và AND lồng nhau với db_select

Xem thêm: Nhiều điều kiện cho db_update tại StackOverflow


Drupal 8

Bạn vẫn có thể sử dụng db_or()như trong Drupal 7, nhưng nó không dùng nữa kể từ Drupal 8.0.x và sẽ bị xóa trong Drupal 9.0.0.

Tạo một \Drupal\Core\Database\Query\Conditionđối tượng, chỉ định ORkết hợp : new Condition('OR'); db_or ()

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.