Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/283.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
使用MYSQL PHP按每个单词搜索,而不是按完整字符串搜索_Php_Mysql_String_Search - Fatal编程技术网

使用MYSQL PHP按每个单词搜索,而不是按完整字符串搜索

使用MYSQL PHP按每个单词搜索,而不是按完整字符串搜索,php,mysql,string,search,Php,Mysql,String,Search,我的搜索允许用户在我的数据库中搜索游戏。唯一的问题是,如果用户在搜索中键入多个词,那么只有在多个词紧挨着的情况下才会被点击 例如: 搜索词=呼叫职责 结果=无 但如果他们输入: 搜索词=使命召唤或现代战争 结果=使命召唤现代战争1/2/3等 下面是我的mysql查询: $query = "SELECT ID, title FROM games WHERE title LIKE '%{$title}%' AND platform = :platform LIMIT $startFrom,15";

我的搜索允许用户在我的数据库中搜索游戏。唯一的问题是,如果用户在搜索中键入多个词,那么只有在多个词紧挨着的情况下才会被点击

例如:

搜索词=呼叫职责

结果=无

但如果他们输入:

搜索词=使命召唤或现代战争

结果=使命召唤现代战争1/2/3等

下面是我的mysql查询:

$query = "SELECT ID, title FROM games WHERE title LIKE '%{$title}%' AND platform = :platform LIMIT $startFrom,15";
        $statement = $dbG->prepare($query);
        $statement->bindValue(':platform', $platform);
        $statement->execute();
        $gamesLike = $statement->fetch(PDO::FETCH_ASSOC);
我知道我应该分解每个单词,搜索每个词,但我担心这会消耗我所有的程序速度

我是否可以使用任何特定的MYSQL查询调整来实现所需的结果

如有任何建议,将不胜感激


感谢您抽出时间

全文搜索非常适合:

它本质上把mysql变成了一个搜索引擎,在这里你可以使用
match
来获得搜索词在你匹配的列中出现的频率。它可以处理部分匹配、多个匹配、排除有助于提高性能的小单词/常用单词,并允许搜索关键字/符号,如
+some-search
将返回必须有
some
但不能有
search
的结果


另外,设置起来非常简单,因为默认情况下几乎所有需要的东西都可以正常工作。

Wow,这正是我需要的(并且希望mysql有)=)