2012-05-23 58 views
0

我有一個表稱爲contactIF語句的問題:MySQL的

我在表中的字段標name和場標記email

我在名稱字段中有一行值爲Ryan的空白電子郵件字段。

我想運行if語句,因此如果name匹配Ryan,它會將電子郵件[email protected]插入email field

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

到目前爲止,我已經試過這樣:

IF name = 'Ryan' 
THEN INSERT INTO contact (email) VALUES ('[email protected]') 
ELSE 
INSERT INTO contact (name, email) VALUES ('Ryan', '[email protected]') 
END IF; 

回答

0

解決的辦法是將問題中的查詢放入存儲過程中

2

我可能是真的錯了,但不會將下面的代碼工作?

UPDATE contact SET email='[email protected]' WHERE name='Ryan'; 
+0

我需要檢查聯繫人是否先存在。更新的問題。 – RSM

+0

您說: 「我在名稱字段和空白電子郵件字段中有一行Ryan的值。」 所以就像@Cyrille所說的,更新應該是有效的。插入語句將插入一個沒有名稱的新行,是你想要的嗎? – iiro

+0

如果你現在讀的問題,我需要做的ifelse語句,因爲如果心不是名稱=瑞恩那麼else語句需要執行 – RSM

1

如果name列是主鍵,你可以使用替換命令

REPLACE INTO contact (name, email) VALUES ('Ryan', '[email protected]') 

在我看來,你應該在你的表鍵或唯一字段。例如,如果名稱是唯一的字段,你可以使用類似這樣

INSERT INTO contact (name, email) VALUES ('Ryan', '[email protected]') ON DUPLICATE KEY UPDATE email = "[email protected]" 

你可以改變你的表模式?

+0

不幸的名字列不是主鍵 – RSM

+1

所以要更新Ryan的電子郵件,如果行withn名瑞安在桌上?如果不是,你只想插入整行? – iiro