2011-08-17 65 views
0

因此,我在我的应用程序上有一个搜索框来查询书籍的标题(以及其他内容),并希望能够按照乱序单词搜索标题:例如:正在即使哈克贝利芬恩被搜索为芬恩哈克贝利,也能够获得纪录。我研究过全文搜索,但它变得太复杂了,因为我想跨多个连接的表进行查询。作为一个复习,如果我使用php来分隔有空格的单词,将单词存储为一个数组,并且执行一个WHERE标题LIKE“%”的循环,这太奇怪了吗?$ titlekeyword。'%“for数组?搜索单词不按顺序

还是只是一团糟等待发生?我不想做任何我的应用程序太奇怪,因为有人将接管它

+0

哪来你的代码? – Drewdin 2011-08-17 12:24:24

+0

你可以在一个空格中“爆炸”标题关键字,并检查每个单词:“WHERE title LIKE'%Finn%'和/或标题LIKE'%Huckleberry%'。 – steveo225 2011-08-17 12:27:56

回答

0

生成查询像

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

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