Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 字段中每个值的MYSQL计数_Php_Mysql_Sql - Fatal编程技术网

Php 字段中每个值的MYSQL计数

Php 字段中每个值的MYSQL计数,php,mysql,sql,Php,Mysql,Sql,我有一个数据库,其下表“响应”带有id和美国州: *id *state 1 CA 2 NY 3 NY 4 CO 5 DE 我正在使用PHP输出美国50个州的行总数 因此,我的输出看起来像: CA:1 纽约:2 CO:1 DE:1 等等…… 我知道我可以运行50个这样的查询: SELECT * FROM `responses` WHERE state='CA' 我的问题是:有没有更有效的方法来处理这个问题,或者我需要运行50个查询?使用GROU

我有一个数据库,其下表“响应”带有id和美国州:

*id   *state
1     CA
2     NY
3     NY
4     CO
5     DE
我正在使用PHP输出美国50个州的行总数

因此,我的输出看起来像:
CA:1
纽约:2
CO:1
DE:1
等等……

我知道我可以运行50个这样的查询:

SELECT * 
FROM  `responses` 
WHERE state='CA'

我的问题是:有没有更有效的方法来处理这个问题,或者我需要运行50个查询?

使用
GROUP BY
子句:

SELECT state, COUNT(*) FROM `responses` GROUP BY state;

关于使用GROUP BY有多种方法,它是SQL最有用、最强大的功能之一。

使用
GROUP BY
子句:

SELECT state, COUNT(*) FROM `responses` GROUP BY state;
使用GROUP BY有多种方法,这是SQL最有用、最强大的功能之一。

您可以使用MySQL子句,它将按照
状态对所有结果进行分组:

SELECT
    state, COUNT(*) AS count
FROM
    `responses`
GROUP BY
    state;
您可以使用MySQL的子句,它将按照
状态对所有结果进行分组:

SELECT
    state, COUNT(*) AS count
FROM
    `responses`
GROUP BY
    state;

选择state,count(state)from responses GROUP BY state另外,请注意,使用这些聚合函数和GROUP BY子句,您的表结果集将包含数字(count),因此您不需要在PHP端计算运行总数或行数。只需从表中读取。SELECT state,count(state)from responses GROUP BY state另外,请注意,使用这些聚合函数和GROUP BY子句,您的表结果集将包含数字(count),因此您不需要在PHP端计算运行总数或行数。从桌子上读,太好了。谢谢你的快速回复。太好了。谢谢你的快速回复。