是否可以直接在MYSQL查询中而不是在PHP中执行此算法?

时间:2017-11-03 14:48:37

标签: php mysql

我有这样的查询:

$query = "SELECT * FROM `profit_by_campaign` WHERE campaign_name = 'myCoolCampaign' AND request_date = '2017-10-16'";

try {
    $stmt = $this->dbh->prepare($query);
    $stmt->execute();
    $rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
}
catch(PDOException $e) {
    die('Error: unable to query ' . $e->getMessage());
}

在获取结果后,我做了一些逻辑:

$total_revenue = 0;
$total_spending = 0;

foreach($rows as $row) {
    $total_revenue += $row['revenue'];
    $total_spending += $row['spending'];
}

$total_profit = ($total_revenue - $total_spending);

echo $total_profit;

所以基本上我试图通过从它的收入中减去它的支出来获得一个活动的总利润。我的问题是,是否可以直接在MYSQL查询本身而不是在PHP中执行此逻辑?

1 个答案:

答案 0 :(得分:7)

尝试此查询:

SELECT SUM(revenue - spending) AS profit
FROM profit_by_campaign
WHERE
    campaign_name = 'myCoolCampaign' AND
    request_date = '2017-10-16';