2016-01-18 62 views
0

的旁邊我有一個表這樣:如何列出MySQL的COUNT

Article_Name Category_ID 
------------- ----------- 
Penguins   20 
Penguins   20 
Penguins   20 
Lions    20 
Tigers    20 
Tigers    20 
Tigers    20 
Tigers    20 
Electricity   21 
Power Plants  21 
Buddhism   22 

我想列出與另一個表中的計數輸出。我可以得到數,我可以列出行,但我不能結合這兩個。我期待得到的輸出爲這樣:

Article_Name  Count 
------------- ----------- 
Penguins   3 
Lions    1 
Tigers    4 

我得到我的計算如下:

$query = "SELECT COUNT(Article_Name) FROM Votes WHERE Category_ID = '20' GROUP BY Article_Name"; 
$result = mysqli_query($conn, $query); 
if($result === FALSE) {                       die(mysqli_error());                     } 
while ($row = mysqli_fetch_array($result)) {echo "HTML goes here";}; 

但是,從字面上只得到我的號碼。

回答

1

GROUP BY條款組中的所有記錄在GROUP BY計數Category_ID每個Article_Name數結合各Article_Name然後COUNT()功能。

嘗試此查詢: -

"SELECT Article_Name,COUNT(*) 
FROM Votes   
WHERE Category_ID = '20' GROUP BY Article_Name"; 

輸出: -

+--------------+----------+ 
| Article_Name | COUNT(*) | 
+--------------+----------+ 
| Penguins  |  2 | 
| Lions  |  1 | 
| Tigers  |  2 | 
+--------------+----------+ 
+0

OP爲什麼要「試試這個」?一個**好的答案**總是會解釋做了什麼以及爲什麼這樣做, 不僅適用於OP,而且適用於SO的未來訪問者,可能會發現此問題並正在閱讀您的答案。 – RiggsFolly

+0

非常好。我只是想說。我忘記了expr和COUNT之間的逗號。那真讓我害怕。 – FunnyGuy

1

您已經通過Article_Name分組,您只需將它與計數一起選中即可。

$query = "SELECT Article_Name,COUNT(Article_Name) FROM Votes WHERE Category_ID = '20' GROUP BY Article_Name"; 
+0

爲什麼要OP 「試試這個」?一個**好的答案**總是會解釋做了什麼以及爲什麼這樣做, 不僅適用於OP,而且適用於SO的未來訪問者,可能會發現此問題並正在閱讀您的答案。 – RiggsFolly