2017-04-06 52 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