我创建了一个更新过程,如果另一个表中的匹配记录发生更改,它将更改表中记录的值,但是,我如何设置它是即使有 12 个字段可以更新,即使只更改了 1 个字段,该过程也会更新它们中的每一个
这是因为效率低下,仅 1 条记录大约需要 50 秒,如果有几百条记录就不好了,我想出了足够简单的伪代码
if olddata != newdata
UPDATE!!!
endif
问题是我对 SQL 中的 if 语句几乎没有经验,如果我可以使用 PHP,那么只需运行带有 WHERE 子句的 SELECT 就很容易了,就像上面的 if 语句然后检查它返回的行数(如果为 0,则没有变化)但程序必须只是 SQL,我能想到的最好的就是这个
IF(SELECT o.field FROM originaltbale AS o INNER JOIN updatetable AS u ON o.primarykey = u.primarykey WHERE o.field <> u.field) != 0
UPDATE!!!
ENDIF
但我怀疑这会起作用,因为我确定 SELECT 不会返回行数,我怎样才能创建一个像这样工作的 if 语句