Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Mysql高级搜索_Php_Mysql_Full Text Search - Fatal编程技术网

Php Mysql高级搜索

Php Mysql高级搜索,php,mysql,full-text-search,Php,Mysql,Full Text Search,有人能帮我使用PHP在MySQL中实现一些高级搜索功能吗 我需要在特定字段(标题、说明)中执行搜索,一些特殊字符可以用作: 对于以给定文本开头的几个单词(例如搜索词为“north*”,应返回包含northern、northwest等的条目) 要排除单词(例如,搜索词为“假期-巴哈马群岛”,应返回包含假期的条目,但不能返回包含巴哈马群岛的条目) 您可能需要更专业的搜索技术。退房 许多开发人员将数据存储在MySQL中,然后使用像Sphinx search这样的搜索引擎作为配套技术来索引数据并高效地

有人能帮我使用PHP在MySQL中实现一些高级搜索功能吗

我需要在特定字段(标题、说明)中执行搜索,一些特殊字符可以用作:

  • 对于以给定文本开头的几个单词(例如搜索词为“north*”,应返回包含northern、northwest等的条目)
  • 要排除单词(例如,搜索词为“假期-巴哈马群岛”,应返回包含假期的条目,但不能返回包含巴哈马群岛的条目)

    • 您可能需要更专业的搜索技术。退房

      许多开发人员将数据存储在MySQL中,然后使用像Sphinx search这样的搜索引擎作为配套技术来索引数据并高效地进行搜索


      使用合适的工具做这项工作。

      我有点不清楚你在问什么。如果您想自己实现这一点,以实现PHP中的特定功能,以下是您需要的SQL知识:

      SELECT * FROM table
      WHERE title LIKE '%north%'
      
      这将查找标题包含“north”的所有条目

      SELECT * FROM table W
      HERE title LIKE 'north%'
      
      这将查找标题以“north”开头的所有条目

      SELECT * FROM table W
      WHERE (title LIKE 'north %' OR title LIKE '% north %' OR title LIKE '% north')
      
      这将查找标题中包含单词north的所有条目

      SELECT * FROM table 
      WHERE (description LIKE '% vacation %' OR description LIKE 'vacation %' OR description LIKE '% vacation')
      AND (description NOT LIKE '% bahamas %' AND description NOT LIKE 'bahamas %' AND description NOT LIKE '% bahamas')
      
      这将查找描述中包含单词“假期”而不是单词“巴哈马”的所有条目


      但是,如果您需要更复杂(处理不区分大小写的查询)、健壮或高效的解决方案,请使用Bill Karwin的答案。

      这里有一些索引文本搜索系统的比较。感谢您的输入。我来看看斯芬克斯搜索。谢谢你提供的有用信息。我认为这些问题可以解决问题。我试试看。很高兴看到一些人愿意帮助,而不是其他一些“天才”只给予-1。