私がしようとしているのは、contact_id に基づいてレコードの最初のインスタンスを更新することです。
メールアドレスと対応する contact_id のテーブルがあります。各連絡先には複数の電子メール アドレスがある場合があるため、同じ contact_id の複数のインスタンスをテーブルに含めることができます。
各個別の contact_id の最初のインスタンスにヒットしたときに、対応する is_primary フィールドを「1」に更新したいと考えています。
データベース内の全員がプライマリ メール アドレスを持っている限り、何がプライマリ メール アドレスになるかについてはあまり心配していません。
テーブルの例:
contact_id | email | is_primary
---------------------------------------------
1001 | john@world.com |0
1001 | desmond@world.com |0
1002 | person@life.com |0
1003 | preson@help.com |0
1003 | bad@sql.com |0
1003 | have@searched.com |0
したがって、私が探している結果は次のようになります。
contact_id | email | is_primary
---------------------------------------------
1001 | john@world.com |1
1001 | desmond@world.com |0
1002 | person@life.com |1
1003 | preson@help.com |1
1003 | bad@sql.com |0
1003 | have@searched.com |0
一時テーブルを作成してそれに一致させようとしましたが、クエリはすべての is_primary フィールドを更新しました。ここで基本的なものが欠けていることは知っていますが、私のSQLスキルは限られています。