【问题标题】:Count how many of each value from a field with MySQL and PHP使用 MySQL 和 PHP 计算字段中每个值的数量
【发布时间】:2013-04-02 07:59:54
【问题描述】:

我已经多次看到这个问题,但我不知道如何显示结果。我有一个电影数据库,我想在单个 MySQL 查询中的顶部菜单中计算每种类型的电影,所以我的菜单会显示如下:

Total Movies (300)
Drama (50)
Comedy (75)
Thriller (30)
...and so on...

我在这个站点上找到了一些 MySQL 查询,但没有人指定如何在 SQL 查询之后处理计数。这样的事情可能会起作用:

select genre, count(*) from movies group by genre

但是之后如何显示每个值的计数? 非常感谢!

【问题讨论】:

    标签: php mysql count


    【解决方案1】:

    给计数部分加上别名,这样你就有一个易于访问的列名:

    SELECT genre, count(*) AS nb_movies FROM movies GROUP BY genre
    

    然后您可以像$row['nb_movies'] 一样访问它。

    如果没有别名,聚合列采用生成它的聚合函数调用的名称,因此在您的情况下,它的访问方式类似于 $row['count(*)']

    【讨论】:

    • 好的 6 个答案,每个答案几乎相同,但仍然不明白,对不起... :( 什么会给我每种不同类型的计数?如果我使用显示它$row['nb_movies'],它不会给我“喜剧”和“惊悚”以及其他所有类型的计数?我是否绝对需要像 Ranjith 建议的那样做一段时间才能获得结果?
    • 是的,您需要遍历结果。我的意思是你可以创建一个超级复杂的查询来将每个流派/计数作为我认为的列,但这很愚蠢。 jsut循环。如果您希望将所有类型的总数组合在一起,而不是使用不同的查询,或者您需要循环并以任何方式获取每种类型的总数,您可以随时将它们相加以获得总数。
    【解决方案2】:

    试试这个,

    SELECT genre, count(*) AS total_genre_movies FROM movies GROUP BY genre
    

    现在你可以像$result['total_genre_movies']一样访问

    【讨论】:

      【解决方案3】:

      如果给count(*)的结果加上别名会更容易

      select genre, 
             count(*) as total
        from movies 
       group by genre
      

      然后,当您将结果提取到 $row 时,您可以以 $row['total'] 的身份访问它,方式与引用 $row['genre'] 的方式完全相同

      【讨论】:

        【解决方案4】:
           select genre, count(*) as genre_count from movies group by genre
        

        现在您可以像 $result['genre_count'] 一样访问

        【讨论】:

          【解决方案5】:

          试试这个,

          $result = mysql_query("select genre, count(*) as genre_count from movies group by genre");
          
          while($row = mysql_fetch_array($result)) {
          
             $genre       = $row['genre'];
             $genre_count = $row['genre_count'];
          
          }
          

          【讨论】:

            【解决方案6】:

            试试

            select genre, count(*) AS total from movies group by genre
            

            使用总计作为例如的计数。

            echo $result['total'];
            

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2017-05-01
              • 1970-01-01
              • 2013-12-27
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2017-11-01
              相关资源
              最近更新 更多