我将如何在满足时结束 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;
但这没有用。
我将如何在满足时结束 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;
但这没有用。
为什么不使用忽略插入?
INSERT IGNORE INTO `db`.`tbl` SET `email`= 'email@domain.com';
您必须在电子邮件上创建唯一索引。
检查here以获得一些参考。
如果这是在行不存在的情况下插入,你应该使用这个:
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'
);