別のテーブルの一致するレコードが変更された場合にテーブルのレコードの値を変更する更新手順を作成しましたが、更新できるフィールドが12個ある場合でも、その設定方法は、1つのフィールドのみが変更された場合でも、プロシージャはそれらすべてを更新します
これは非効率的であるため、1つのレコードに約50秒かかります。数百のレコードがある場合は良くありません。これについては、擬似コードを十分に簡単に考えました。
if olddata != newdata
UPDATE!!!
endif
SQLのifステートメントの経験がほとんどないかまったくないということです。PHPで作業できる場合は、上記のifステートメントのようにWHERE句を指定してSELECTを実行し、返された行数を確認するだけで簡単になります( 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ステートメントを作成するにはどうすればよいですか。