【发布时间】:2011-08-10 04:17:21
【问题描述】:
我有一个简单的问题,但我似乎不知道该怎么做。我正在尝试编写一个查询来计算每个查询的唯一结果数,并将值和作为查询结果的次数存储到不同的数据库。
这是我基本上想要做的一个例子......
假设我有一个“颜色”表
+------------+------------+------------+
| id | color | letter |
+------------+------------+------------+
| 1 | blue | a |
| 2 | blue | b |
| 3 | red | a |
| 4 | red | b |
| 5 | green | a |
+------------+------------+------------+
我有一个查询将使用此表运行多次 找到对应的字母和颜色:
$query = ("SELECT * FROM colors WHERE letter = '$someletter'");
$query1 = mysql_query($query);
while($row = mysql_fetch_array($query1)) {
$id = $row['id'];
$color = $row['color'];
};
对于每个查询,我将 $id 和 $color 变量写入单独的日志文件。
例如,使用上面的查询,$someletter = "a"。 (将此查询称为#1) 结果将是:
+------------+------------+------------+
| id | color | letter |
+------------+------------+------------+
| 1 | blue | a |
| 3 | red | a |
| 5 | green | a |
+------------+------------+------------+
蓝色、红色和绿色各有一个结果。
如果使用 $someletter = "b" 运行查询(调用此查询 #2) 结果集将是:
+------------+------------+------------+
| id | color | letter |
+------------+------------+------------+
| 2 | blue | b |
| 4 | red | b |
+------------+------------+------------+
蓝色和红色各有一个结果。
所以查询 #1 和 #2 的结果总数:
+------------+------------+------------+
| id | color | totalresult|
+------------+------------+------------+
| 1 | blue | 2 |
| 3 | red | 2 |
| 5 | green | 1 |
+------------+------------+------------+
基本上,我想找到一种方法来计算 X 个查询的所有唯一结果。因为此查询将使用不同的变量多次运行,所以我想将结果存储在一个数据库中,该数据库可能有一个颜色列和一个总结果列,如上所示。另外,我只是使用表“颜色”作为示例,唯一条目的实际数量将是数百个,因此查询必须为此工作。
我正在考虑某种形式的 COUNT 或 GROUP,但我似乎无法连接这些点。
任何帮助将不胜感激。
【问题讨论】: