我不知道如何在mysql中执行此操作,我已搜索但似乎无法找到解决方案。 , 我有一张这样的桌子。
id pid occurrence
1 23 blank
2 23 blank
3 44 blank
基本上,对于id 1,2,出现的值应为2,对于id 3,出现的值应为1。 任何帮助,将不胜感激。我可以很容易地调用count和GROUP BY,并获得每次出现的次数,但我想在每个pid的正确位置更新列出现次数。
答案 0 :(得分:2)
要获得正确的occurrence
值,您可以
select pid, count(*) as occurrence
from your_table
group by pid
更新表格
update your_table t1
join
(
select pid, count(*) as occurrence
from your_table
group by pid
) t2 on t1.pid = t2.pid
set t1.occurrence = t2.occurrence
答案 1 :(得分:1)
如果您想在表格中设置值,请将update
与join
一起使用:
update table t join
(select pid, count(*) as cnt
from table
group by pid
) tt
on tt.pid = t.pid
set t.occurrence = tt.cnt;