0

我有一张桌子叫contact

我在表中有一个字段标记为name,还有一个字段标记为email

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

我想运行一个 if 语句,以便它将电子邮件info@ryanmurphy.org.uk插入到email fieldifname匹配项中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;
4

3 回答 3

2

我可能真的错了,但下面的代码不起作用吗?

UPDATE contact SET email='info@ryanmurphy.org.uk' WHERE name='Ryan';
于 2012-05-23T08:56:46.640 回答
1

如果名称列是主键,您可以使用替换命令

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"

你能改变你的表模式吗?

于 2012-05-23T09:19:36.787 回答
0

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

于 2012-05-24T11:00:29.713 回答