0

満足したらifステートメントを終了し、そうでない場合はストアドプロシージャでelseを実行するにはどうすればよいですか?

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;

しかし、これはうまくいきませんでした。

4

2 に答える 2

1

無視挿入を使用してみませんか?

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

電子メールに一意のインデックスを作成する必要があります。

参考のためにここをチェックしてください。

于 2012-05-24T12:39:10.510 に答える
0

行がまだ存在しない場合に挿入するためのものである場合は、次を使用する必要があります。

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'
);
于 2012-05-24T12:35:30.820 に答える