У меня есть таблица, содержащая все виды параметров.
Структура таблицы: id, идентификатор_объекта, имя_параметра, значение_параметра
Следующий код работает, но добавляет результаты вместо их обновления.
Дело в том, что я не могу использовать 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);