2017-04-06 57 views
1

我目前得到了一个包含用户和可变用户状态(1,2,3,4,5等)的表格。我目前计算用户的数量在各个状态分别PHP MySQL将多个fetchcolumn合并为一个查询

$query = "SELECT COUNT(*) FROM users WHERE status = 1"; 
$result = $pdo->query($query); 
$users1 = $result->fetchColumn(); 

$query = "SELECT COUNT(*) FROM users WHERE status = 2"; 
$result = $pdo->query($query); 
$users2 = $result->fetchColumn(); 

etc 

我能打通所有的结果取回,然后循环并添加每个状态,但我不知道是否有更好的方法与做查询?

回答

2

您可以通过使用组并与计

SELECT status, COUNT(*) as my_count FROM users group by status; 

NB有了这个,你不能使用fetchColumn获取列表..但fetchRow。而通过按键

+0

我仍然必须通过结果循环获得$ users1/2/3等吗? – Bill

+0

是的..正确的,你必须遍历结果fof通过键'status',,,''my_count'得到每一行和avcces到每一行的值....(但是你有选择每个状态的行。 ..不是每个$用户).. – scaisEdge

1

访问你仅仅指刚需加状态为一组

SELECT COUNT(*),status FROM users group by status