PHP计算在一列中包含相同值的MYSQL行

时间:2014-03-23 09:18:45

标签: php mysql

我有一个数据库,并且有一个名为'status'的列。此列可能包含五个可能的值。现在我需要对行数求和,其中status列包含值'cancelled'。我应该使用PHP中的哪些函数来计算它?谢谢你的回复。


修改

我认为这是完整的解决方案。如果我错了,请纠正我。

$canceledsum=mysql_query("SELECT COUNT(*) AS totalcanceled FROM nabidka WHERE status='canceled'");
$d=mysql_fetch_assoc($canceledsum);
echo $d['totalcanceled'];

2 个答案:

答案 0 :(得分:8)

你可能正在寻找这个:

SELECT COUNT(*)
FROM yourtable
WHERE status='canceled'

或此查询将计算所有不同状态值的所有行:

SELECT status, COUNT(*)
FROM yourtable
GROUP BY status

修改:如果您只想计算当月创建的记录:

SELECT status, COUNT(*)
FROM yourtable
WHERE create_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')
GROUP BY status

此处DATE_FORMAT(CURDATE(), '%Y-%m-01')将返回当月的第一天,如果您将来没有创建记录,那就没问题了。

答案 1 :(得分:1)

您可以直接使用sql。

,而不是使用PHP来计算

触发此查询:

SELECT COUNT(*) FROM table_name WHERE status = 'canceled';

关于如何触发查询和从PHP获取数据,请参考this link