2011-08-31 17 views
7

Tôi muốn làm một lựa chọn đơn giản với một SUM của một số hàng trong Drupal, nhưng tôi dường như không thể tìm ra cách để làm điều đó. Tôi biết có nhiều cách để làm một truy vấn trong Drupal (một trong số họ đang viết truy vấn thực tế, nhưng tôi không muốn điều đó).Drupal - Làm thế nào để có được SUM của các hàng

Dưới đây là đoạn code tôi có:

$query = db_select("node","n"); 
$query->fields("n", array("nid","likes" => "SUM(likes)")); 

Nhưng dường như Drupal dải ngoặc của tôi và tôi nhận được lỗi sau:

1054 Unknown column 'n.SUMlikes' in 'field list' 

bất cứ ai có thể giúp tôi? Có cái gì đó như $query->sum()?

Trả lời

16

Bạn muốn được tốt nhất bằng cách sử dụng một biểu thức:

$query = db_select('node', 'n') 
    ->fields('n', array('nid')); 
$query->addExpression('SUM(likes)', 'likes'); 

Đối số đầu tiên là sự biểu hiện, các bí danh thứ hai.

Hy vọng rằng sẽ giúp

+0

hoàn hảo. Chỉ cần những gì tôi đang tìm kiếm. cảm ơn bạn. –

+0

Và làm cách nào tôi có thể truy cập kết quả? $ query-> total? –

+0

// Sau đây là cú pháp hoàn chỉnh đã làm việc cho tôi $ query = db_select ('nút', 'n') -> các trường ('n', mảng ('nid')); $ query-> addExpression ('SUM (thích)', 'thích'); $ query-> execute(); – qasimzee

Các vấn đề liên quan