2011-10-06 41 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)'] ;