如何在GROUPING(使用GROUP BY)SQL查询后获得行数?

时间:2013-06-26 04:46:50

标签: php mysql sql group-by fetch

CODE:

$result = mysql_query("SELECT COUNT(`user_id`), `mac_add`, SUM(`duration`)/60 AS ConnTime, SUM(`download`)/1000000 AS TotalDown, SUM(`upload`)/1000000 AS TotalUp
   FROM `cdr_data_january` 
   WHERE (`bs_id_site` LIKE '".$btsid."') AND (`ldate` BETWEEN '".$date1."' AND '".$date2."') 
   GROUP BY `user_id` 
   UNION 
   SELECT COUNT(`user_id`), `mac_add`, SUM(`duration`)/60 AS ConnTime, SUM(`download`)/1000000 AS TotalDown, SUM(`upload`)/1000000 AS TotalUp 
   FROM `cdr_data_february` 
   WHERE (`bs_id_site` LIKE '".$btsid."') AND (`ldate` BETWEEN '".$date1."' AND '".$date2."') 
   GROUP BY `user_id`");

我有一个MySQL查询需要在PHP上运行。

我需要在GROUPING之后获得行数(即在使用GROUP BY之后)。

$query_data = mysql_fetch_row($result);
$numrows = $query_data[0];

这实际上是返回总行数(在GROUPING之前)。

我不明白接收行号的代码应该是什么(在GROUPING之后)。

注意一个案例:对于一个查询,它返回15作为$ numrows,这是GROUP BY之前的总行数,但是我需要$ numrows将返回5,这是之后的行数GROUP BY。

如果有人知道解决方案,请帮我解决。感谢。

1 个答案:

答案 0 :(得分:2)

你可以使用......

$num_rows = mysql_num_rows($result);

...返回总行数。