2011-10-06 44 views
2

我想在Drupal中做一個簡單的SQL查詢,但我不知道如何。我想實現這一點:比較Drupal中的2個字段

SELECT COUNT(nid) AS i_count FROM node WHERE `created` != `changed`; 

我有下面的代碼,它不工作:

$query = db_select('node', 'n'); 
$query->addExpression("COUNT(nid)","i_count"); 
$query->condition("created","changed","!="); 
$i_number_published = $query->execute()->fetchCol(); 

之所以它不工作是,它列created與比較字符串值"changed"。有什麼辦法可以告訴它比較列而不是列字符串?

回答

6

使用where()成員函數基礎上添加表中的其他領域條件:

$query = db_select('node', 'n'); 
$query->addExpression("COUNT(nid)","i_count"); 
$query->where("created != changed"); 
$i_number_published = $query->execute()->fetchCol(); 
+0

謝謝,不知道有一個'where'方法。 –

0
$result_handler = db_query("select count(nid) from {node} where `created` != `changed`") ; 

$result_arr = db_fetch_array($result_handler) ; 

$number_of_nodes = $result_arr['count(nid)'] ;