php - MySQL 触发器 : updating column depending of a submitted value

标签 php mysql

这是我的触发器,但它不起作用。

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/

相关文章:

php - 如何从 MySQL 数据库检索数据并将其保存到 xml 文件

php - 使用 PDO 引发异常 "could not find driver"

php - 如何相应地对这些数组进行分组?

mysql - 缺少数据库

php - 为什么sql给我错误 "Invalid parameter number: parameter was not defined"

php - 使用post和response从iPhone获取NSMutableArray到PHP

php - 要求文件夹中的所有文件

mysql - 有人可以解释为什么我在 sql 查询中遇到此错误

javascript - 使用 php/javascript 制作 3 个从 MySQL 数据库填充的相关下拉菜单

php - php计数器的具体值