IDのようなユニークキーを使用してこの結果を達成する方法があることは知っていますが、私のケースでは以下のように見えます。私は一意の鍵を持っていません。
ユニークキーなしでMySQLテーブルまたはアップデートに挿入する
INSERT INTO User_Status (User_ID1, User_ID2, Status) VALUES(?, ?, ?) ON DUPLICATE KEY UPDATE Status = ?
事は、私がこのtabelに1つの固有のIDを持っていないで、しかし3つの現在のオプションがあります。 1)Twooユーザーは、1つのステータスを持っていません。言い換えれば、それをテーブルに挿入します。 2)ユーザー1はユーザー2と1つのステータスを持っています(1-2の組み合わせはユニークです)。 3)ケース2と同じですが、向きが変わります。ユーザー2はユーザー1と1つのステータスを持ちます(この組み合わせはユニークです)。
このオプションが既に存在する場合は、更新する必要はありますか?
サンプルデータ:
User_ID1 User_ID2 Status
1 4 has_send_request
4 1 has_received_request
4 2 friends
2 4 friends
のは、私が友達にhas_send_requestからユーザー1-4のステータスを更新したいとしましょう。この場合、私は通常のUPDATEクエリを実行できます。しかし、ユーザー2-4からステータスを更新する場合は、1つのINSERTクエリを作成し、1つのUPDATEクエリを作成する必要はありません。
サンプルデータを入力してから挿入条件を入力してください。 –
サンプルデータをいくつか追加しました。 –
サンプルデータから、組み合わせ( 'User_ID1、User_ID2')が一意であるように見えます。 –