0

UPDATE クエリの SQL について簡単な質問があります。ここで知りたいことに非常に近いものを見つけました: MySQL:個別の値の発生をカウントする

しかし..更新クエリではありません。これが私がやりたいことの例です:

1 つのテーブル (テーブルを「データ」と呼びましょう) で、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] は数字です

私が望むのは、[色] が発生するインスタンスの数を示すように、カウントを更新することです。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 に答える