我有一个数据库,并且有一个名为'status'的列。此列可能包含五个可能的值。现在我需要对行数求和,其中status列包含值'cancelled'。我应该使用PHP中的哪些函数来计算它?谢谢你的回复。
修改
我认为这是完整的解决方案。如果我错了,请纠正我。
$canceledsum=mysql_query("SELECT COUNT(*) AS totalcanceled FROM nabidka WHERE status='canceled'");
$d=mysql_fetch_assoc($canceledsum);
echo $d['totalcanceled'];
答案 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