我在使用%LIKE%运算符选择数据时遇到问题。
目前,我有两个表分别称为tagging_tags和news。 新闻表具有一列称为标签。下面是我的新闻表的图片:
下面是我的taggable_tags表的图片:
我的问题是,我得到的数据不是我的预期想法。如果我访问“ Honda News 1”页面死于转储,我将获得所有包含关键字“ Honda”的数据的结果。
但是,“本田新闻2”和“本田新闻3”不会返回所有包含关键字“本田的3条新闻。”>
下面是我的代码:
/* relevant articles section */ // ... my previous code with variable $tag_values (data from tags column in news) $i = 0; foreach($tag_values as $tagarr){ $array1[] = $tagarr[0]['name']; } //$array1 returns array:2 [▼ 0 => "Honda" 1 => "News" ] $array2 = Tags::pluck('name') ->all(); //$array2 returns all the arrays in taggable_tags table $result = array_intersect($array1, $array2); //$result finds the arrays that intersect $query = News::query(); foreach($result as $relevant_result){ $query->where(function ($q) use ($relevant_result){ $q->where('tags', 'like', '%'.$relevant_result.'%') ->orWhere('title', 'like', '%'.$relevant_result.'%'); }); } $relevant_articles = $query->orderBy('title')->get();
我希望有人能指导我如何获得它,以便即使在新闻下的标题和标记列中甚至找到一个相似的关键字,也应该返回相关文章的数据。
谢谢您!
我在使用%LIKE%运算符选择数据时遇到问题。目前,我有两个表分别称为tagging_tags和news。新闻表中有一列称为标签。下面是我的...
设法自己做! :)对于任何有类似问题的人,以下是我的解决方案: