在一个查询中选择计数和其他记录

时间:2009-12-09 07:37:16

标签: select mysql count

我有以下查询

select main_cat_name,cat_url from mf_main order by main_cat_name

这会返回我的表的整个数据。现在我想要计算这个表的总行数。我可以使用另一个查询来完成它,但是如何在一个查询中使用它们?

我想要两个数据ONE: - 表格TWO的行: - 计数 我怎么能在一个单一的查询中拥有它

我尝试了这个,但它提供了正确的计数,但只显示了表格的第一行:

select count(cat_id),main_cat_name,cat_url from mf_main order by main_cat_name

5 个答案:

答案 0 :(得分:16)

您可以尝试使用Group By:

SELECT count(cat_id), main_cat_name, cat_url FROM mf_main GROUP BY main_cat_name, cat_url ORDER BY main_cat_name

我希望正确的解决方案:

这就是你想要的:)

SELECT x.countt, main_cat_name, cat_url FROM mf_main, (select count(*) as countt FROM mf_main) as x ORDER BY main_cat_name

如果你使用mysql你就像我一样“as”。对于其他人,db可能没有(如oracle)

答案 1 :(得分:3)

你可以尝试

select main_cat_name,cat_url,
COUNT(*) OVER () AS total_count
from mf_main
order by main_cat_name

不确定MySQL是否接受AS,如果不接受则删除它。

答案 2 :(得分:1)

select count(cat_id), main_cat_name, cat_url 
from mf_main
group by main_cat_name, cat_url
order by main_cat_name

答案 3 :(得分:0)

如果不使用WHERE查询并且不以任何其他方式限制输出,例如使用GROUP BY,那么结果中的行数量将匹配表中的行数量,因此您可以使用数据库驱动程序特定的方法来找到行数,例如PHP中的mysql_num_rows

答案 4 :(得分:-1)

您已经创建了一个选择语句

你的点数已经有num_rows记录为num_rows