MySQL:有条件地根据某个字段运行查询1或查询2

标签 mysql

我正在创建一个触发器,如果​​新插入行的字段 statuscode 的值为 200,它应该运行 Query 1。但是如果 statuscode 表示 300 改为运行 Query 2。这在 MySQL 中完全可行吗?

我尝试了想到的第一个方法,但显然是错误的。

CREATE TRIGGER mytrigger AFTER INSERT ON tableA
    FOR EACH ROW BEGIN
    IF(new.statuscode = 200,
        (DELETE FROM tableB WHERE new.guid = tableB.guid),
        (UPDATE tableB SET is_complete = 0 WHERE new.guid = tableB.guid))
END
//
DELIMITER ;

最佳答案

mysql 过程中 IF/ELSE 的语法是:

IF (NEW.statuscode = 200) THEN
   DELETE FROM tableB WHERE new.guid = tableB.guid;
ELSE
   UPDATE tableB SET is_complete = 0 WHERE new.guid = tableB.guid;
END IF;

这里是触发器语法的文档: http://dev.mysql.com/doc/refman/5.5/en/if.html

关于MySQL:有条件地根据某个字段运行查询1或查询2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21048258/

相关文章:

MySQL 按条件排序

MySQL LEFT JOIN NULL 值

php - 如何将 csv 中的数字列表上传到空表的一列中

mysql - 在 MySql 中转换日期令人困惑

MySQL 5.7 : Order by left-joined one-to-many tables

mysql - 如何从 mySql 中的一个表中获取项目列表以及从花药中获取其相关项目的总数?

MYSQL 查询性能不同,排序依据和限制同一个表

php - Codeigniter - 从许多表中获取数据

php - 按类别搜索产品

php - 获取与 WordPress 中自定义帖子类型关联的所有用户