1

簡単な質問です。私は現在 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 ステートメントを使用するかどうかです。存在しない場合は、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ですが、どのように実装するかわかりません。ここからどこへ行くべきかについての指示をいただければ幸いです。

4

1 に答える 1