Мне было интересно, можете ли вы использовать инструкцию UPDATE внутри IF ELSE внутри INSERT INTO, и она выглядит примерно так:
INSERT INTO about
SELECT a1, b1, c1
FROM post a
WHERE IF(a.id NOT IN (SELECT b.id FROM category b),
TRUE,
(UPDATE about c
SET c.comments = a.comments
WHERE a.status == 'active')
В настоящее время я получаю синтаксическую ошибку:
Синтаксическая ошибка: Неожиданный '(' (Открытие скобки)
А также
Синтаксическая ошибка: Отсутствует ')' (Закрывающая скобка)
Таким образом, я уверен, что ваш Cant из-за синтаксических ошибок, но я ошибаюсь в этом?
Вы не можете выполнить обновление в предложении WHERE в MySQL. Для таких проблем все основные реляционные базы данных, включая MySQL, поддерживают триггеры, что означает, что вы можете инициировать команду DML после каких-либо изменений в некоторой таблице.
Итак, в этом случае, когда вы меняете (вставляете/обновляете/удаляете) что-то в своей таблице, вы можете определить действие DML.
delimiter ;;
create trigger test_trigger
before insert ON about
write your logic for the update here
end ;;
delimiter ;