Dan*_*Dan 3 php mysql string search
我的搜索允许用户在我的数据库中搜索游戏.唯一的问题是,如果用户在搜索中键入多个术语,则只有当这些多个单词彼此相邻时才会获得命中.
例:
搜索词= Call Call duty Modern
result = none
但如果他们输入:
搜索词=使命召唤 - 或 - 现代战争
结果=使命召唤现代战争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);
Run Code Online (Sandbox Code Playgroud)
我知道我应该打破每个单词并搜索每个术语,但我担心它会耗尽我所有的程序速度......
我可以使用任何特定的MYSQL查询调整来实现我需要的结果吗?
任何建议将不胜感激
感谢您的时间
全文搜索非常适合:http://dev.mysql.com/doc/refman/5.0/en/fulltext-search.html
它实质上是将MySQL的到您使用搜索引擎match和against获得的搜索词条的频率在你匹配对列显示了排名回来.它可以处理部分匹配,多个匹配,排除小/常用的单词以帮助提高性能,并允许搜索关键字/符号,如+some -search将返回必须some但不具有的结果search.
此外,设置非常简单,因为默认情况下您需要的所有内容都可以使用.
| 归档时间: |
|
| 查看次数: |
2956 次 |
| 最近记录: |