あらゆる種類のパラメータを含むテーブルがあります。テーブルの構造は次のとおりです:id、object_id、param_name、param_value
次のコードは機能しますが、結果を更新する代わりに追加します。事実、私のフィールドは一意ではないため、 ON DUPLICATE KEYを使用できません(もちろんidを除く)
INSERT INTO `params_table` (`object_id`, `param_name`, `param_value`)
SELECT
A.id AS my_object_id,
'XYZ' AS my_param_name,
IF(TMP.abc IS NULL,0,1) AS my_param_value
FROM
ref_table AS A
LEFT JOIN tmp_table AS TMP ON TMP.abc = A.abc
ON DUPLICATE KEY
UPDATE `param_value` = IF(TMP.abc IS NULL,0,1);