在一个查询中选择计数和其他记录
Posted
技术标签:
【中文标题】在一个查询中选择计数和其他记录【英文标题】:select count and other records in one single query 【发布时间】:2010-12-24 17:45:55 【问题描述】:我有以下问题
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
【问题讨论】:
如果您正在处理 php,它会为您完成工作.. 没有,即使在 php 中它也没有做我想做的事情:-( 【参考方案1】:您可以尝试使用 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 可能没有 as(如 oracle)
【讨论】:
【参考方案2】:你可以试试
select main_cat_name,cat_url,
COUNT(*) OVER () AS total_count
from mf_main
order by main_cat_name
不确定 MySQL 是否接受AS
,如果不接受就删除它。
【讨论】:
【参考方案3】:select count(cat_id), main_cat_name, cat_url
from mf_main
group by main_cat_name, cat_url
order by main_cat_name
【讨论】:
这给每个 cat_name 计数 1【参考方案4】:一旦你已经创建了一个选择语句
已经有 num_rows 记录您的计数为 num_rows
【讨论】:
【参考方案5】:如果您不使用 WHERE 查询并且不以任何其他方式限制输出,例如使用 GROUP BY,则结果中的行数将与表中的行数匹配,因此您可以使用数据库驱动程序特定的方法来查找行数,例如mysql_num_rows
在 PHP 中
【讨论】:
以上是关于在一个查询中选择计数和其他记录的主要内容,如果未能解决你的问题,请参考以下文章