gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-11-01 07:57:16 25 4
gpt4 key购买 nike

我的搜索允许用户在我的数据库中搜索游戏。唯一的问题是,如果用户在搜索中键入多个词,则只有当这些词彼此紧挨着时,它才会被匹配。

例子:

搜索词 = Call Duty Modern

结果 = 无

但是如果他们输入:

搜索词 = 使命召唤 - 或 - 现代 war

结果 = 使命召唤现代 war 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 查询调整来获得我需要的结果吗?

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

谢谢你的时间

最佳答案

全文搜索对此非常有用:http://dev.mysql.com/doc/refman/5.0/en/fulltext-search.html

它实质上将 mysql 变成了一个搜索引擎,您可以在其中使用 matchagainst获得搜索词在您匹配的列中出现的频率的排名。它可以处理部分匹配、多重匹配,排除小/常见的词以帮助提高性能,并允许搜索关键字/符号,如 +some -search将返回必须具有 some 的结果但不能有 search .

此外,它的设置也出奇地容易,因为默认情况下几乎所有你需要的东西都能正常工作。

关于php - 使用 MYSQL PHP 按每个单词而不是完整的字符串搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7616000/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com