仅当另一个表中的 COUNT 不为零时才更新

Goo*_*bot 2 mysql count update

我通过计算另一个表中的 FK 来更新一个表

UPDATE table1 
SET number = number +
(
SELECT COUNT(*) FROM table2 
WHERE  table1.id=table2.id
)
Run Code Online (Sandbox Code Playgroud)

table1是一张大桌子,我想制作UPDATE唯一的如果COUNT找到了一些东西。换句话说,我不想制作UPDATEfor number=0

And*_*y M 7

通过idfrom导出计数表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
;
Run Code Online (Sandbox Code Playgroud)

上面的语句将仅影响在table1中具有匹配项的行table2