私たちとビジネスをしたい人たちからのリードでいっぱいのテーブルがあります。スパム用語の表もあります。リードからスパムをフィルタリングする必要があります。私はLaravel 4でこれをやっています。私は次のようなことを考えていました:
$spam_terms = SpamTerms::all();
$sm = '"SELECT * FROM all_forms_send_message';
foreach ($spam_terms as $spam) {
if ($spam->id == 1) {
$sm .= ' WHERE GeneralNotes NOT LIKE ' . $spam->term . ' ';
} else {
$sm .= ' AND WHERE GeneralNotes NOT LIKE ' . $spam->term . ' ';
}
}
$sm .= '"';
// echo $sm;
return DB::select(DB::raw($sm));
まず、これがうまくいきません。最後の行でエラーがスローされます。ステートメントは問題なく構築されており、echo
適切に動作します。
2 つ目は、リードとスパム テーブルを照合するのにこれが最善の方法ですか? スパム テーブルが大きくなるにつれて、何百もの where 句が存在する可能性があります。より良い戦略はありますか?