我们在MySQL数据库中有这两个字段: in_model , in_color
我们正在尝试计算模型(in_model字段)的总数,它在PHP中具有相同的颜色(in_color字段),使用MySQL作为后端数据库。我们尝试使用count()
函数和group by
。但似乎我们没有达到预期的效果
$query = "SELECT in_model, COUNT(in_color) FROM in_newunit GROUP BY in_color,in_model";
$result = mysql_query($query) or die(mysql_error());
// Print out result
while($row = mysql_fetch_array($result)) {
echo "There are ". $row['COUNT(in_color)'] ."
". $row['in_model'] ." items.";
echo "<br />";
}
There are 1 C2I items.
There are 2 try items.
There are 2 try items.
There are 4 C2I items.
我们正试图让颜色出现在回声中
There are 1 C2I Black items.
There are 2 try White items.
There are 2 try Black items.
There are 4 C2I White items.
答案 0 :(得分:5)
我认为这很直接。试试这个。
$query = "SELECT in_model, in_color, count(*) AS counter FROM in_newunit GROUP BY in_model, in_color";
$result = mysql_query($query) or die(mysql_error());
// Print out result
while($row = mysql_fetch_array($result)) {
echo "There are ". $row['counter'] ." ". $row['in_model'] ." ".$row['in_color']." items.";
echo "<br />";
}
答案 1 :(得分:2)
查询实际上是另一种方式:
SELECT in_color, count(*) FROM in_newunit
GROUP BY in_color
你实际上已经说过了:
我们正在尝试计算模型(in_model字段)的总数,它具有相同的颜色(in_color字段)
“统计模型总数”&gt; count(*)
“具有相同颜色”&gt;对于每种颜色,前一个计数为group by in_color
另请注意,如果您执行count(in_model)
,则不会将in_model
的值计为null
。如果您执行count(*)
,您也将计算null
值。由你决定。
<强>更新强>
所以你想要(模型,颜色)对的元素数量。然后这是查询:
SELECT in_model, in_color, count(*) FROM in_newunit
GROUP BY in_model, in_color
例如:
model1 | black | 2
model1 | white | 1
model2 | black | 5
model3 | white | 4