Mysql
僅當另一個表中的 COUNT 不為零時才更新
我通過計算另一個表中的 FK 來更新一個表
UPDATE table1 SET number = number + ( SELECT COUNT(*) FROM table2 WHERE table1.id=table2.id )
table1
是一張大桌子,我想做UPDATE
唯一的如果COUNT
找到了一些東西。換句話說,我不想製作UPDATE
fornumber=0
。
id
通過from導出一個計數表,table2
將結果連接到table1
並在 UPDATE 語句中使用該連接:UPDATE table1 AS t1 INNER JOIN ( SELECT id, COUNT(*) AS cnt FROM table2 GROUP BY id ) AS t2 ON t1.id = t2.id SET t1.number = t1.number + t2.cnt ;
上面的語句將只影響
table1
在table2
.
添加
where exists
到它:UPDATE table1 SET number = number + ( SELECT COUNT(*) FROM table2 WHERE table1.id=table2.id ) WHERE EXISTS ( SELECT * FROM table2 WHERE table1.id=table2.id )