MySQL IF ... ELSE或IF EXISTS语句

时间:2013-04-10 01:57:31

标签: mysql insert-select

快速提问。我目前正在使用INSERT ... SELECT语句来检查用户在成为教练之前有一个基本的成员帐户。这段代码工作正常:

INSERT into coaches (U_Name, P_word, M_ID)
SELECT members.U_Name,members.P_word,members.M_ID FROM members
WHERE members.U_Name="bob1" AND members.P_word="123"
ON DUPLICATE KEY UPDATE U_Name = members.U_Name, P_word = members.P_word;


正如您所看到的,我目前只是使用相同的数据更新他们的帐户(如果它们已经存在)。我现在要做的是,如果用户是会员并且已经成为教练,则显示一条消息,通知他们已经注册为教练。
所以我的问题是,我将它包装在IF ... ELSE语句中还是使用IF EXISTS语句,如insert if not exists else just select in mysql
正在思考:

IF EXISTS(SELECT coaches.U_Name,coaches.P_word,coaches.M_ID FROM coaches 
WHERE coaches.U_Name="bob1" AND coaches.P_word="123")
ELSE
BEGIN
INSERT into coaches (U_Name, P_word, M_ID)
SELECT members.U_Name,members.P_word,members.M_ID FROM members
WHERE members.U_Name="bob1" AND  members.P_word="123"
END;

此处也看过这个示例:MySql IF exists select ELSE insert但不确定如何实现它。任何关于从何处出发的指示都将不胜感激。

1 个答案:

答案 0 :(得分:1)

INSERT ... ON DUPLICATE KEY UPDATE语法可以帮助您解决问题。 它可以从mySQL 5.0开始

参考:http://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html