php– 如何使我的SQL查询在句子中搜索几个单词,即使它们不相互跟随

php– 如何使我的SQL查询在句子中搜索几个单词,即使它们不相互跟随,第1张

概述我的搜索表单有一个SQL查询.$term = $request->get('term'); $queries = Article::where('title', 'LIKE', '%' . $term . '%')->published()->get(); 我的研究正在进行中.如果我有一篇名为“我的伟大文章很棒”的文章,并且我在我的搜索表

我的搜索表单有一个SQL查询.

$term = $request->get('term');$querIEs = Article::where('Title','liKE','%' . $term . '%')->published()->get();

我的研究正在进行中.如果我有一篇名为“我的伟大文章很棒”的文章,并且我在我的搜索表单中写了“greate article”,它就可以了.

但是,如果我写“文章真棒”,这些词语就不会互相影响,而且它不起作用.

如何使我的查询仅使用关键字?

谢谢

最佳答案您可以执行以下 *** 作:

$term = $request->get('term');$keywords = explode(" ",$term);$article = Article::query();foreach($keywords as $word){    $article->orWhere('Title','%'.$word.'%');}$articles = $article->published()->get();

如果只想要包含查询中所有单词的结果,只需将orWhere替换为where.

如果你想过滤掉某些单词,你可以添加如下内容:

$filtered = ["a","an","the"];$filteredKeywords = array_diff($keywords,$filtered);

或者,如果您想要更加动态,可以传递一个闭包:

$filteredKeywords = array_filter($keywords,function($word) {    return strlen($word) > 2;});
总结

以上是内存溢出为你收集整理的php – 如何使我的SQL查询在句子中搜索几个单词,即使它们不相互跟随全部内容,希望文章能够帮你解决php – 如何使我的SQL查询在句子中搜索几个单词,即使它们不相互跟随所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1168057.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存