PHP MYSQL最简单的用户搜索技术,带有排序结果

时间:2013-11-30 15:49:51

标签: php mysql

我在mysql中有一个用户表,其中包含cols:user_idfirst_namemiddle_namelast_name我想要一个可以返回user_id列表的查询按照最接近的匹配顺序排序。

E.G。如果我搜索John f kenedy或f john kenedy或kenedy f john等,将返回相同的结果排序类似:john f kenedy as first,john kenedy(另一个用户)as second,john kent as third,so so上....

我的服务器脚本是php这么简单&高效的PHP算法是可以接受的,但它应该很快,因为它会在文本框中输入时提示iser。

感谢。

1 个答案:

答案 0 :(得分:0)

您可以做的是计算与您的查询和订单匹配的字段数:

order by (@QUERY like concat('%', first_name, '%') +
          @QUERY like concat('%', middle_name, '%') +
          @QUERY like concat('%', last_name, '%')
         ) desc

然而,这是一项相当昂贵的操作,索引无法改进。

如果您正在进行此类搜索,您最好了解MySQL中的全文搜索功能(启动here)。