2015-04-21 39 views
1

我真正想要的是:我怎么能在我的数据库使用“或”查询

$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