0

我有一个关于 UPDATE 查询的 SQL 的简单问题。我在这里发现了一些非常接近我想知道的东西: MySQL:计算不同值的出现次数

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

在一个表中(我们称表为“数据”),我想进行 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] 是一个数字

我想要的是更新计数,以便它告诉 [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] 字段。

提前致谢!

4

1 回答 1

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
于 2013-02-01T21:04:40.357 回答