制作更新查询以计算出现次数

时间:2013-02-01 20:22:51

标签: count find-occurrences

我有一个关于UPDATE查询的SQL的简单问题。我发现了一些非常接近我想知道的东西: MySQL: Count occurrences of distinct values

但是......这不是更新查询。以下是我想要做的例子:

在一个表中(让我们调用表“data”),我想做一个UPDATE查询。这是表格的样子:

Id color  count
1  blue   0
2  blue   0
3  red    0
4  red    0
5  blue   0
6 white   0

现在,[id]是此示例的自动增量键,[color]是TEXT字段。 [count]是一个数字

我想要的是,计数是UPDATED,以便它告诉[color]出现的实例数。运行UPDATE查询后,表格如下所示:

Id  color count
1   blue  3
2   blue  3
3   red   2
4   red   2
5   blue  3
6   white 1

看起来很简单,但我已经搞乱了DCOUNT和COUNT命令,而且我可能很容易错过一些东西,但仍然......没有快乐。我见过的所有帮助只处理SELECT查询,但我肯定需要这个查询来更新[count]字段。

提前致谢!

1 个答案:

答案 0 :(得分:1)

你应该尝试:

UPDATE data JOIN
( 
  SELECT color, count(1) AS color_cnt
  FROM data
  GROUP BY color
) AS sub ON data.color = sub.color
SET cnt = sub.color_cnt