2015-04-21 4 views
1

Что я действительно хочу это:Как я могу использовать «OR» в моей БД запросов

$query = db_select('watchdog', 'wa'); 
$query->orderBy('wa.timestamp', 'DESC') 
     ->condition('blablabla', 'closed', '=') or 
      ('blablabla', 'blabla', '=') 
      or ('blablabla', 'balblabla', '=') 
     ->range(0, 20); 
    $result = $query->execute(); 

Я хочу поставить много условий с или, но я не знаю, как писать их вниз ..

+0

Попробуйте мой ответ, и дайте мне знать, работает он или нет. –

+4

Я голосую, чтобы закрыть этот вопрос как не по теме, потому что он принадлежит сайту [drupal.stackexchange.com] (http://drupal.stackexchange.com). –

ответ

2

по умолчанию установлено значение AND, использовать или, что вам нужно сделать, как этот

$query = db_select('watchdog', 'wa'); 
    $query->orderBy('wa.timestamp', 'DESC'); 
    $or = db_or(); 
    $or->condition('blablabla', 'closed', '='); 
    $or->condition('blablabla', 'blabla', '='); 
    $or->condition('blablabla', 'balblabla', '='); 
    $query->condition($or); 
    $query->range(0, 20); 

    $result = $query->execute(); 
+0

Не могли бы вы рассказать мне, как это сделать в моем коде? – Karmen

+0

отредактирован так, как вам нужно – Unex

+0

и db_select и диапазон? Как они будут показаны? – Karmen

0
$query = db_select('watchdog', 'wa'); 
//your condition 
$condition = db_or() 
    ->condition('blablabla', 'closed', '=') 
    ->condition('blablabla', 'blabla', '=') 
    ->condition('blablabla', 'balblabla', '='); 

$query->condition($condition) 
     ->orderBy('wa.timestamp', 'DESC') 
     ->range(0, 20); 
$result = $query->execute(); 

Попробуйте приведенный выше код.

+0

Это работает, но первый ответ был быстрее ...: / – Karmen

Смежные вопросы