ユーザーがニュースレターを購読できるサイトはいくつかあります。私のニュースレターにsendyを使っていて、何か問題がある。 Sendyのdb構造では、同じ電子メールアドレスを複数回使用することができます。各電子メールには、独自のID、一意のID、および問題の一部であるリストIDがあります。
誰かが別のサイトからサインアップすると、別のリストに移動します。
誰かが1つのリストIDから退会した場合、そのレコードはunsub値が '1'になります。 DB内のメールアドレスのすべてのインスタンスを '0'(異なるサイトからサインアップした場合)のメールのすべてのインスタンスに '1'を付けるように更新します。
次の回答を見ましたが私の頭が正しい答えの周りを包んでいるようには見えません。
mysql - UPDATEing row based on other rows
Updating rows based on other rows in the same table
これはこれは私がメールアドレスは配信停止を持っていることを決定する必要がImはMySQL + 1行の値に基づいて行を更新する
id email list unsubscribed
1 [email protected] 1 1
2 [email protected] 2 0
3 [email protected] 3 0
を探しているものの一例である構造
Name Type Attributes Null Default Extra
id int(11) UNSIGNED No None AUTO_INCREMENT
email varchar(100) Yes NULL
list int(11) Yes NULL
の一部です。値が「1」であれば、「0」を有するその電子メールアドレスの他のすべての発生は「1」に更新される。
これはPHPで行う必要がありますか、これをMySqlで自動化できますか?
は完璧に動作し、そんなにありがとう! – Semon