使用MYSQL PHP按每个单词搜索,而不是按完整字符串搜索
我的搜索允许用户在我的数据库中搜索游戏。唯一的问题是,如果用户在搜索中键入多个词,那么只有在多个词紧挨着的情况下才会被点击 例如: 搜索词=呼叫职责 结果=无 但如果他们输入: 搜索词=使命召唤或现代战争 结果=使命召唤现代战争1/2/3等 下面是我的mysql查询:使用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";
$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有)=)