db_selectを使用して計算列を取得するにはどうすればよいですか?


7

合計(ポイント)が必要ですか?以下に示すサンプルコードに何を追加するかについてのヘルプはありますか?

$query = db_select('digitaliq_question_points','n')
  ->fields('n',array('points'))
  ->condition("node_id", $node->nid, '=')
  ->condition('n.fld_group', $fields, 'IN');

$points = $query->execute()->fetchAll();

回答:


9

addExpression()メソッドを利用できます:

$query = db_select('digitaliq_question_points','n')
  ->fields('n',array('points'))
  ->condition("node_id", $node->nid, '=') 
  ->condition('n.fld_group', $fields, 'IN');

$alias = $query->addExpression('SUM(points)', 'sum_of_points');

$points = $query->execute()->fetchAll();

明らかに、戻り値/グループ化の要件に基づいて少し変更する必要があるかもしれませんが、それはあなたが探している方法です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.