Mysql(compagnie)テーブルの(emails)フィールドを更新する必要があります。私は解決策を探して、各行を、購読していない電子メールだけを含むリスト(CSVファイル)と比較します。電子メールが登録解除されている場合は、この行の(ニュースレター)フィールドを更新し、NOに設定する必要があります。おそらく、私は比較するために私のテーブルまたは別のテーブルの列に1万個の電子メールを入れたCSVファイルをインポートする必要がありますか?また、私はインデックスを作成し、テーブルをロックすると思います。MySQL:この行の別の値が10 000値の 'リスト'の値と等しい場合、値を更新してください
など。すべての電子メールあなたによって置き換えられます
CREATE INDEX idx ON compagnie (emails);
LOCK TABLES compagnie WRITE;
UPDATE compagnie SET newsletter='NO' WHERE email='[email protected]';
UNLOCK TABLES compagnie WRITE;
あなたは確かに文字列の長さの制限を押してください!私はmax_allowed_packetが1ギガビットのギガバイトだと知っていますが、まだ... – dnagirl
@dnagirl - これはちょうど一致と更新タスク10,000 * 100バイト= 100Mb、まだ大丈夫だと思います。この長いクエリをファイルに保存し、mysqlを使って実行すると、まったく怪我をすることはありません。 –
ajreal
あなたのソリューションは非常にうまく動作します、ありがとう! – researchamw