这是我的触发器,但它不起作用。
CREATE TRIGGER events_events_a BEFORE INSERT ON events_events
FOR EACH ROW
BEGIN
IF NEW.public = 1 THEN
UPDATE events_cats SET etotal=etotal+1, etotal_NEW.region=etotal_NEW.region+1 WHERE id=NEW.category;
END IF;
END;
我需要根据提交的值更新列。
if NEW.region value is 1, I need to update column etotal_1=etotal_1+1
if NEW.region value is 2, I need to update column etotal_2=etotal_2+1
if NEW.region value is 3, I need to update column etotal_3=etotal_3+1
等 有什么方法可以根据 NEW.region 值更新列吗?
最佳答案
您不能创建新的列名。对于 update
和其他 SQL 语句都是如此。您可以明确列出要更新的列:
UPDATE events_cats
SET etotal = etotal + 1,
etotal_1 = (case when new.region = 1 then etotal_1 + 1 else etotal_1 end),
etotal_2 = (case when new.region = 2 then etotal_2 + 1 else etotal_1 end),
etotal_3 = (case when new.region = 3 then etotal_3 + 1 else etotal_1 end)
WHERE id = NEW.category;
关于php - MySQL 触发器 : updating column depending of a submitted value,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31808847/