有没有办法根据百分比字符串匹配选择MySQL中的表行?

时间:2010-10-14 19:00:14

标签: php mysql

我正在尝试在PHP中创建一个简单的部分地址搜索实用程序。有问题的表只有一个“地址”栏。我的目标是让用户在表单中输入部分地址,让我的脚本检索该表中最接近的25个匹配项。

显而易见的,在我看来,草率的方法是选择表格中的每个地址,然后让PHP循环遍历每一个,计算与搜索词的百分比相似度,对它们进行排序,并输出。当您认为该表有数万行并且我最多需要25行时,这似乎是浪费大量资源。

我想做这样的事情:

SELECT id, firstname, lastname, PERCENTMATCH(address, $searchterm) AS matchpercent
FROM accounts
WHERE matchpercent > 85
ORDER BY matchpercent
LIMIT 25

但是,我无法从查询中找到任何方法。这是可能的还是我必须走这条草率的路线?

1 个答案:

答案 0 :(得分:3)

全文搜索可以对查询相关性进行评分:http://dev.mysql.com/doc/refman/5.5/en/fulltext-search.html