【问题标题】: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 中它也没有做我想做的事情:-(

标签: select mysql count


【解决方案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 中

        【讨论】:

          猜你喜欢
          • 2013-12-15
          • 1970-01-01
          • 2014-07-12
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-09-21
          • 2015-06-10
          • 2020-05-14
          相关资源
          最近更新 更多