IF语句问题:MySQL

时间:2012-05-23 08:53:07

标签: mysql if-statement insert

我有一张名为contact

的表格

表格中有一个标有name的字段和一个标有email的字段。

我在名称字段中有一行值为Ryan的行和一个空白的电子邮件字段。

如果info@ryanmurphy.org.uk匹配email field,我想运行if语句,以便将电子邮件name插入Ryan

如果找不到匹配项,那么我希望它插入行。

到目前为止,我已经尝试过这个:

 IF name = 'Ryan'
 THEN INSERT INTO contact (email) VALUES ('info@ryanmurphy.org.uk') 
 ELSE
 INSERT INTO contact (name, email) VALUES ('Ryan', 'info@ryanmurphy.org.uk')
 END IF;

3 个答案:

答案 0 :(得分:2)

我可能真的错了,但下面的代码不会有效吗?

UPDATE contact SET email='info@ryanmurphy.org.uk' WHERE name='Ryan';

答案 1 :(得分:1)

如果name列是主键,则可以使用replace命令

REPLACE INTO contact (name, email) VALUES ('Ryan', 'info@ryanmurphy.org.uk')

在我看来,你的桌子上应该有钥匙或独特的字段。例如,如果name是唯一字段,则可以使用类似

的内容
INSERT INTO contact (name, email) VALUES ('Ryan', 'info@ryanmurphy.org.uk') ON DUPLICATE KEY UPDATE email = "info@ryanmurphy.org.uk"

您是否可以更改表格架构?

答案 2 :(得分:0)

解决方案是将问题中的查询放入存储过程