0

我们的 MySQL 数据库中有这两个字段: in_modelin_color

我们正在尝试计算模型的总数(in_model 字段),它在 PHP 中具有相同的颜色(in_color 字段),并以 MySQL 作为后端数据库。我们尝试使用该count()功能以及group by. 但似乎我们没有达到预期的结果

这是我们的 MySQL 数据库:

$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.
4

2 回答 2

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 />";  
}
于 2013-10-10T06:06:55.340 回答
2

查询实际上是相反的:

SELECT in_color, count(*) FROM in_newunit
GROUP BY in_color

你自己也说过:

我们正在尝试计算具有相同颜色(in_color 字段)的模型(in_model 字段)的总数

“计算模型总数”>count(*)

“具有相同的颜色”> 对于每种颜色,前一个计数,这是一个group by in_color

另请注意,如果这样做,count(in_model)您将不会使用in_modelas计算值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
于 2013-10-10T05:35:25.503 回答