私が作業しているのは、データベース用の電子メールクリーンアップスクリプトです。そうすることで、私たちは無効で、壊れている、またはもはや周囲のドメインのリストを特定しました。私たちは、ドメイン名、すなわち@記号の後のすべてを特定することによってこれを行います。MYSQL更新サブトークンが別のテーブルに存在する場合インナー結合
update url_links
set link_bad=1,
emailCarrier='bad-domain.com'
where contact_email like '%@bad-domain.com';
は、プロバイダを識別し、フィールドを設定します。問題は何百ものドメインが有効でないことです(上記は単なる例です)。
私がしたいのは、 'emailCarriers'と呼ばれる別のテーブルへの '内部結合'です。私はこれをPHPでループとして書くことができましたが、誰かがMySQLでこれを行う巧妙な方法を持っていたかどうかここでコミュニティに尋ねたかったのです。
emailCarriersテーブルにはすべての悪いドメインキャリアが含まれているため、クエリはemailCarriersテーブルを参照し、ドメイン名部分の部分文字列(@記号の後ろ)に一致するものを探し出し、更新して、「bad-domain.com」にemailCarriersテーブルの対応するドメインを入力します。
ありがとうございます!
'update'は' join'sすることができます。 –
はい私はupdateがjoinを許していることを知っていますが、他のテーブルemailCarriersへの結合の構文を理解することはまだ初心者です。そのテーブルには「プロバイダ」というフィールドがあります。プロバイダーとの一致がテーブルのレコードと同じキャリアである限り、 – Viktor