我有一张桌子,里面满是想和我们做生意的人的线索。我还有一张垃圾邮件术语表。我需要过滤来自潜在客户的垃圾邮件。我在 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
正确。
其次,这是将线索与垃圾邮件表匹配的最佳方式吗?随着垃圾邮件表的增长,可能会有数百个 where 子句。有更好的策略吗?