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

Select 在单个查询中选择计数和其他记录,select,mysql,count,Select,Mysql,Count,我有以下疑问 select main_cat_name,cat_url from mf_main order by main_cat_name 这将返回我的表的全部数据。现在我想计算这个表的总行数。我可以使用另一个查询来完成,但如何在一个查询中使用它们 我想要两个数据一:-表中的行二:-计数 我怎么能在一个查询中得到这个呢 我尝试了这个方法,但它给出了正确的计数,但只显示表的第一行: select count(cat_id),main_cat_name,cat_url from mf_main

我有以下疑问

select main_cat_name,cat_url from mf_main order by main_cat_name
这将返回我的表的全部数据。现在我想计算这个表的总行数。我可以使用另一个查询来完成,但如何在一个查询中使用它们

我想要两个数据一:-表中的行二:-计数 我怎么能在一个查询中得到这个呢

我尝试了这个方法,但它给出了正确的计数,但只显示表的第一行:

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

您可以通过以下方式尝试分组:

SELECT count(cat_id), main_cat_name, cat_url FROM mf_main GROUP BY main_cat_name, cat_url ORDER BY main_cat_name
正确的解决方案我希望:

这就是你想要的:)

如果你使用mysql,你会像我一样拥有“as”。对于其他数据库,可能没有as(如oracle)

您可以尝试

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

不确定MySQL是否接受<代码>作为,如果不接受,就删除它。

如果不使用WHERE查询,并且不以任何其他方式限制输出,如使用GROUP BY,则结果中的行数将与表中的行数匹配,因此您可以使用数据库驱动程序特定的方法来查找行数,例如,在PHP中创建select语句后


已经有一个num_rows记录,记录您的计数为num_rows

如果您正在处理php,它会为您完成任务。即使在php中,它也不做我想做的事情:-(这是为每个cat_名称指定计数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
select main_cat_name,cat_url,
COUNT(*) OVER () AS total_count
from mf_main
order by main_cat_name