Как использовать агрегатные функции Mysql с CakePHP - PullRequest
4 голосов
/ 08 апреля 2011

Есть ли способ использовать функции агрегирования с cakephp? например, sum () или avg () с методом find ().

UPDATE:

Я пропустил строку в книге

array('fields'=>array('Product.type','MIN(Product.price) as price'), 'group' => 'Product.type');

Показывает базовую структуру для этого.

Спасибо за помощь

Ответы [ 2 ]

5 голосов
/ 08 апреля 2011

В параметре fields вызова метода find вы можете передать поле, обработанное агрегированной функцией.Пример:

$Model->find('all',
    array(
        'anything' => array(/* */),
        'fields' => array(
            'SUM (Model.attribute) AS total',
            'OTHERFUNCTION(OModel.other_attribute) AS other'
        ),
        'otherthing' => array(/* */)
    )
);
0 голосов
/ 08 апреля 2011

Точно так же, поскольку CakePHP - это просто PHP-фреймворк.

<?php
// Make a MySQL Connection

$query = "SELECT type, SUM(price) FROM products GROUP BY type"; 

$result = mysql_query($query) or die(mysql_error());

// Print out result
while($row = mysql_fetch_array($result)){
    echo "Total ". $row['type']. " = $". $row['SUM(price)'];
    echo "<br />";
}
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...