Php 计算MySQL列中不同值的数量

Php 计算MySQL列中不同值的数量,php,mysql,sql,count,Php,Mysql,Sql,Count,我对COUNT函数有些熟悉,但对于如何将其应用于这种特定情况,我有点困惑。假设我有一个表,其中一列包含以下值: apples apples apples oranges oranges bananas 这些值可以由用户添加,所以我永远不知道在本专栏中会出现什么值,但总是会有重复的值。我首先要做的是将它们显示在一个HTML表中,这样每一行将表示一个特定的值,每个相邻的单元格显示重复值的数量。使用上面的示例数据,PHP生成的HTML表中的预期输出为: |Fruits | Amount

我对
COUNT
函数有些熟悉,但对于如何将其应用于这种特定情况,我有点困惑。假设我有一个表,其中一列包含以下值:

apples
apples
apples
oranges
oranges
bananas
这些值可以由用户添加,所以我永远不知道在本专栏中会出现什么值,但总是会有重复的值。我首先要做的是将它们显示在一个HTML表中,这样每一行将表示一个特定的值,每个相邻的单元格显示重复值的数量。使用上面的示例数据,PHP生成的HTML表中的预期输出为:

|Fruits     | Amount   |
|-----------|----------|
|apples     | 3        |
|oranges    | 2        |
|bananas    | 1        |
在这个阶段,我知道我必须在SQL中使用
COUNT
函数,并且通过PHP,我需要运行某种形式的foreach循环,但除此之外,我不确定如何继续




编辑:更改了数据。希望它更有意义

添加
按valueName分组
添加到查询的末尾。

添加
按valueName分组
添加到查询的末尾。

添加
按valueName分组
添加到查询的末尾。

添加
按valueName分组
到查询的结尾。

这意味着我知道该值是多少,不是吗?如果我们说数据库中有valueX,我将无法为该特定值编码,除非我知道它存在…对吗?不。查询将获取所有记录,按valueName分组。使用列名(这是你特别提到的
Value name
疯狂的想法,试试看,你需要更坚定地掌握PHP中的数据构造和流控制,以及如何处理从MySQL传递的数据……等等。但是,当你问到如何根据重复的值对结果计数进行分组时,这修改您的查询(或查看@aldux的答案以了解更完整的填鸭式喂食)将为您获取您要查找的数据。这意味着我知道该值是什么,不是吗?如果我们说数据库中有valueX,我将无法为该特定值编码,除非我知道它存在…对吗?不。查询将获取所有记录,按valueName分组。使用列名(这是你特别提到的
Value name
疯狂的想法,试试看,你需要更坚定地掌握PHP中的数据构造和流控制,以及如何处理从MySQL传递的数据……等等。但是,当你问到如何根据重复的值对结果计数进行分组时,这修改您的查询(或查看@aldux的答案以了解更完整的填鸭式喂食)将为您获取您要查找的数据。这意味着我知道该值是什么,不是吗?如果我们说数据库中有valueX,我将无法为该特定值编码,除非我知道它存在…对吗?不。查询将获取所有记录,按valueName分组。使用列名(这是你特别提到的
Value name
疯狂的想法,试试看,你需要更坚定地掌握PHP中的数据构造和流控制,以及如何处理从MySQL传递的数据……等等。但是,当你问到如何根据重复的值对结果计数进行分组时,这修改您的查询(或查看@aldux的答案以了解更完整的填鸭式喂食)将为您获取您要查找的数据。这意味着我知道该值是什么,不是吗?如果我们说数据库中有valueX,我将无法为该特定值编码,除非我知道它存在…对吗?不。查询将获取所有记录,按valueName分组。使用列名(这是你特别提到的
Value name
疯狂的想法,试试看,你需要更坚定地掌握PHP中的数据构造和流控制,以及如何处理从MySQL传递的数据……等等。但是,当你问到如何根据重复的值对结果计数进行分组时,这修改您的查询(或查看@aldux的答案以了解更完整的填鸭式喂食)将为您获取您要查找的数据。旁注:如果
Value name
是您的实际列名,请尝试在单词之间不要使用空格。查询时在列名周围使用下划线或反勾号。将行值检索到PHP数组,然后使用SQL
COUNT
聚合和
分组依据
抱歉,我被拒绝了只是试着让它简单化naming@MarkBaker:这会不会像我在诺亚回答下的评论中提到的那样?@Hiigaran-你对命名的简化实际上使你的问题变得模棱两可;如果你展示一个真实的例子,说明你在数据库中拥有什么,以及你想要实现什么,这可能会有所帮助enote:如果
Value name
是您的实际列名,请尝试不要在单词之间使用空格。查询时在列名周围使用下划线或反勾号。将行值检索到PHP数组,然后使用或使用SQL
COUNT
聚合和
groupby
抱歉,我只是想用naming@Mark贝克:这会不会像我在诺亚回答的评论中提到的那样?@Hiigaran-你对命名的简化实际上使你的问题变得模棱两可;如果你展示一个真实的例子,说明你在数据库中拥有什么,以及你想要实现什么,这可能会有所帮助。表示:如果
Value name
是你的实际c列名称,尽量不要在单词之间使用空格。查询时在列名周围使用下划线或反勾号。将行值检索到PHP数组,然后使用或使用SQL
COUNT
aggregation with
groupby
抱歉,我只是想用naming@MarkBaker:那会是我刚才提到的方式吗通信
SELECT [column_name], COUNT([column_name])
FROM [table_name]
GROUP BY [column_name];
Select `column name`, count(*) from `table1`
group by `column name`