Php 添加年份中断计算的位置
我有一个非常简单的问题:Php 添加年份中断计算的位置,php,mysql,Php,Mysql,我有一个非常简单的问题: SELECT a, b, a+b as c FROM records 这很有效。他是结果中的一个例子: Array ( [a] => 100.92 [b] => 21.00 [c] => 121.92 ) 但当我尝试按年份筛选记录时: SELECT a, b, a+b as c FROM records WHERE YEAR(`mydate`) = '2011' a+b计算消失: Array ( [a] => 100.92 [b] =>
SELECT a, b, a+b as c FROM records
这很有效。他是结果中的一个例子:
Array ( [a] => 100.92 [b] => 21.00 [c] => 121.92 )
但当我尝试按年份筛选记录时:
SELECT a, b, a+b as c FROM records
WHERE YEAR(`mydate`) = '2011'
a+b计算消失:
Array ( [a] => 100.92 [b] => 21.00 [c] => )
我错过了什么明显的东西吗
更新:
transaction\u date
)=“2011”include($_SERVER["DOCUMENT_ROOT"] . "/pool/_/db.php");
$sql = "SELECT credit, debit, credit+debit as total FROM transactions
WHERE YEAR(`transaction_date`) = 2011";
$result = mysql_query($sql) or die(mysql_error());
while($row = mysql_fetch_assoc($result)) {
print_r($row);
}
我能想到的唯一一件事是,
credit
或debit
是NULL
(而不是0
),这反过来又会使total的值为NULL
。试试这个,看看它是否改变了什么:
... COALESCE(credit, 0) + COALESCE(debit, 0) as total ...
愚蠢的问题,但是
mydate
的数据类型是什么?应该避免在WHERE
子句中的列周围使用函数其中mydate(如“2011-%”)更好。我不确定这是否重要,但Year函数将返回一个整数值。@您不需要在2011
中使用单引号。该函数返回一个整数。Whit,有两种选择:要么PHP脚本弄乱数组,要么计算返回null。由于您证明了查询在没有条件时不会返回null,因此很容易假设问题出在PHP脚本中。我唯一能想到的是,credit
或debit
是null
(而不是0
),这反过来会使total
的值也为null
。试试这个,看看它是否改变了什么。。。合并(贷方,0)+合并(借方,0)作为总计…