当前位置: 首页 > 面试题库 >

PHP SQL SELECT,其中像带有多个单词的搜索项

徐柏
2023-03-14
问题内容

我有一个选择,像查询seach形式,如下所示:

<?php 
$bucketsearch = sanitizeone($_POST["bucketsearch"], "plain");
$bucketsearch = strip_word_html($bucketsearch);
?>

 if(isset($_POST['search'])){
                  $result=MYSQL_QUERY( "SELECT * FROM buckets where bucketname like '%$bucketsearch%' order by bucketname");
              }else{
              $result=MYSQL_QUERY( "SELECT * FROM buckets order by bucketname");
          }

我的问题是,如果有人搜索“苹果和梨”,那么我没有得到任何包含任何单词的结果,我只能使其返回包含所有单词的结果(1个结果)。

任何人都可以帮助我进行更多搜索吗?提前致谢。


问题答案:

因此,您想要使用输入的每个单词而不是确切的字符串进行AND搜索吗?大概是这样的:

$searchTerms = explode(' ', $bucketsearch);
$searchTermBits = array();
foreach ($searchTerms as $term) {
    $term = trim($term);
    if (!empty($term)) {
        $searchTermBits[] = "bucketname LIKE '%$term%'";
    }
}

...

$result = mysql_query("SELECT * FROM buckets WHERE ".implode(' AND ', $searchTermBits).");

这将给您一个查询,例如:

SELECT * FROM buckets WHERE bucketname LIKE '%apple%' AND bucketname LIKE '%and%' AND bucketname LIKE '%pear%'

如果要匹配任何搜索词而不是全部搜索词,请将AND更改为OR。进一步的改进可能涉及定义一些停用词,例如“和”,以提供更好的结果。



 类似资料:
  • 问题内容: 我从来没有真正听到过关于这个问题的直接答案,我只需要FULLTEXT搜索包含多个单词“ Firstname Lastname”的几列 但是,如果我在此处输入多个单词,它将无法运行查询。 问题答案: 如果要进行精确搜索:

  • 问题内容: 我曾经使用过django,haystack和elasticsearch。 我的search_index.py: 搜索表格: 模板: 看 ` 我得到所有的价值,那里有“老板”和“挡泥板” 当您在搜索框中输入“ boss fender”时,我没有结果。从搜索表单中,我只能得到一个单词的结果,例如“老板”。如何使搜索多个单词的能力? 问题答案: 这个月我陷入了这个问题。 为了执行正确的查询,

  • 问题内容: 我正在尝试在站点中创建搜索功能,并且希望用户能够搜索多个单词,并根据各种模型中存在的条件执行子字符串匹配。 为了这个示例,假设我有以下模型: 员工 公司 市政府 县 一个县有多个直辖市,有多个公司,有多个员工。 我希望搜索能够针对Employee.firstname,Employee.lastname,Company.name,Municipality.name和County.name

  • 问题内容: 我第一次使用Postgresql,并且试图在我的网站中创建一个搜索引擎。我有这张桌子: 然后我为表的每个字段创建了一个索引(这是正确的方法吗?或者我可以为所有字段创建一个索引?): 现在,如果我想在每个索引中搜索一个单词,SQL查询是什么? 我尝试了这个,它的工作原理: 是否存在更好的方法来做到这一点?我可以搜索多个吗?我的一个朋友提出了一个解决方案,但这是针对MySQL数据库的: P

  • 我想从文件。 示例: 我想给我们一种动态命令,因为我不必每次为每个用户手动输入。 我试过了 但这并没有达到预期的效果。

  • 问题内容: 我正在努力创建一个搜索多个单词的搜索。我的第一次尝试没有任何结果,结果如下: 我还尝试了以下方法,这些方法产生了结果,但是正如您可以想象的那样,我输入的每个单词都得到了重复的结果: 我对如何进行此操作非常迷惑,不胜感激。 编辑: 问题答案: 我已经在同一个主题(搜索关键字)上工作了一段时间,这是我的工作方式: -现在这就是我尝试使用FULLTEXT搜索运行它的样子:但是您应该将表类型设