Php 搜索不符合顺序的单词

Php 搜索不符合顺序的单词,php,mysql,Php,Mysql,因此,我的应用程序上有一个搜索框,用于查询书籍的标题(以及其他内容),并希望能够搜索带有无序单词的标题:例如:即使Huckleberry Finn被搜索为Finn Huckleberry,也能够找回记录。我已经研究了全文搜索,但它变得太复杂了,因为我想跨多个连接的表进行查询。作为一种权宜之计,如果我使用php在有空格的地方分解单词,将单词存储为数组,并对数组执行诸如“%”.$titlekeyword.“%”之类的where title循环,这是否太奇怪了 或者这只是一场即将发生的混乱?我不想对我

因此,我的应用程序上有一个搜索框,用于查询书籍的标题(以及其他内容),并希望能够搜索带有无序单词的标题:例如:即使Huckleberry Finn被搜索为Finn Huckleberry,也能够找回记录。我已经研究了全文搜索,但它变得太复杂了,因为我想跨多个连接的表进行查询。作为一种权宜之计,如果我使用php在有空格的地方分解单词,将单词存储为数组,并对数组执行诸如“%”.$titlekeyword.“%”之类的where title循环,这是否太奇怪了

或者这只是一场即将发生的混乱?我不想对我的应用程序做任何太奇怪的事情,因为有人将接管它

 SELECT ... WHERE title like '%Finn%' AND title '%Huckleberry%' AND title '%next%'

implode(' AND ',array_map(function($x){
    return '`title` like "%'.$x.'%"';
},explode(' ',$str)));

你可以
在空格中分解
标题关键字,然后检查每个单词:
其中的标题像“%Finn%”和/或标题像“%Huckleberry%”
。我认为最好在用户输入时应用一些
自动完成
,例如,上面的每个标题旁边都应该有LIKE(Huckleberry和next都缺失)。