【问题标题】:Break out of IF statement if condition satisfied如果条件满足则跳出 IF 语句
【发布时间】:2012-05-24 12:31:22
【问题描述】:

如何在满足条件后结束 if 语句,然后在存储过程中执行 else if 否则?

我尝试在 if 语句之后结束 if:

IF EXISTS (SELECT * FROM `db`.`tbl` WHERE email = "email@domain.com") END IF;
ELSE INSERT INTO `db`.`tbl` (email) VALUES ("email@domain.com"); END IF;

但这没有用。

【问题讨论】:

    标签: mysql stored-procedures if-statement


    【解决方案1】:

    为什么不使用忽略插入?

    INSERT IGNORE INTO  `db`.`tbl` SET `email`= 'email@domain.com';
    

    您必须在电子邮件上创建一个唯一索引。

    查看here 以获得一些参考。

    【讨论】:

    • 您不必使用带有insert ignore tho 的主键吗?
    • 这是 mysql 独有的功能。但大多数数据库都有类似的东西。
    • 我想设置多个字段它只是AND
    【解决方案2】:

    如果这是在行不存在的情况下插入,你应该使用这个:

    INSERT INTO `table` (value1, value2) 
    SELECT 'stuff for value1', 'stuff for value2' FROM `table` 
    WHERE NOT EXISTS (
        SELECT * FROM `table` 
        WHERE value1='stuff for value1' AND value2='stuff for value2'
    );
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-23
      • 1970-01-01
      • 2018-12-21
      • 1970-01-01
      • 2015-07-12
      相关资源
      最近更新 更多