Вот мой текущий запрос: (это триггер)
UPDATE qanda SET closed = COALESCE(closed, 0) + 1 WHERE id = new.qanda_id
Теперь мне нужно сделать его более продвинутым. В настоящее время оно всегда увеличивается + 1
. Я хочу присоединиться к таблице users
и проверить следующее:
- если
role_id == 1
, то + 5
- если
reputation > 5000
, то + 5
Как я могу это сделать?
Вот что я сделал. Я хочу сделать это с CASE WHEN
(как?)
BEGIN
SELECT reputation, role_id INTO @reputation , @role_id FROM users WHERE id = new.user_id;
IF (@reputation >= 5000 OR role_id == 1) THEN
UPDATE qanda SET closed = COALESCE(closed, 0) + 5 WHERE id = new.qanda_id;
ELSE
UPDATE qanda SET closed = COALESCE(closed, 0) + 1 WHERE id = new.qanda_id;
END IF
END