2016-01-18 29 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