如何计算mysql查询返回的行数?我想用PHP计算它们


How can I count the numbers of rows that a mysql query returned? and i want to calculate them using PHP

我有一个数据库表

connection_td

id - zone - ageing_with_a -  ageing_with_b -  ageing_with_c   -  tatal_ageing  -  average
1     Abw        5days           1days             2days              8days      2.6days 
2     bbb        1days           5days             2days              8days      2.6days 
3     bbb        2days           3days             4days              9days      3days  
4     Abw        3days           2days             6days              11days     3.4days 
5     ccc        4days           4days             6days              14days     4.3days  

现在我想像在这个tanle 中一样检索这些数据

id - zone - ageing_with_a - ageing_with_b - ageing_with_c   -  tatal_ageing  -  average
1     Abw         8               3               8                 19           6
2     bbb
3     ccc

希望你能理解我想要什么,有人请帮我谢谢

看看GROUPBY函数:文档。

例如:

SELECT zone, SUM(ageing_with_a) , SUM(ageing_with_b) , SUM(ageing_with_c)  , SUM(tatal_ageing) , SUM(average)
FROM connection_td
GROUP BY zone

但是我看到您的数据中有days字符串。您必须删除此字符串,然后将结果强制转换(或转换)为数字,才能使用SUM函数。

SUM(CAST(REPLACE(ageing_with_a ,'[a-z]+','')) AS DECIMAL(2,2))这样的东西就可以了。

或者更好的方法是:根据需要将列类型更改为DECIMAL或INTEGER,并停止在其中存储"days"字符串。那么,我在这里给出的第一个查询应该是有效的。

正确的方法是将表列数据类型更改为"INT",并且只在这些列中存储数字。然后,像SUM这样的简单查询就可以了。但首先应该更改列的数据类型。

如果要计算字段,则应为整数。但现在我可以看到它是varchar

请在您的字段中设置整数

试试这个-

SELECT SUM(ageing_with_a), SUM(ageing_with_b), SUM(ageing_with_c) FROM connection_td GROUP BY zone

如果您想先添加列值,您必须在数据库中使用列作为整数,并将您的天数放入数据库

并尝试此查询

SELECT SUM(ageing_with_a), SUM(ageing_with_b), SUM(ageing_with_c) FROM connection_td GROUP BY zone