Сравните 2 поля в Drupal - PullRequest
       4

Сравните 2 поля в Drupal

2 голосов
/ 06 октября 2011

Я хочу сделать простой запрос SQL в Drupal, но я не уверен, как. Я хотел бы добиться этого:

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". Можно ли как-то сказать ему сравнивать столбцы вместо строки-столбца?

Ответы [ 2 ]

8 голосов
/ 06 октября 2011

Используйте функцию-член where() для добавления условий на основе других полей в таблице:

$query = db_select('node', 'n');
$query->addExpression("COUNT(nid)","i_count");
$query->where("created != changed");
$i_number_published = $query->execute()->fetchCol();
0 голосов
/ 06 октября 2011
$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)'] ; 
...