搜索每个单词并过滤少于x个字符的数量

时间:2017-08-25 15:52:26

标签: php mysql

我使用以下mysql查询来搜索我的常见问题解答:

    $raw_results = mysql_query("SELECT * FROM faq
        WHERE (`question` LIKE '%".$search."%') OR (`answer` LIKE '%".$search."%')") or die(mysql_error());

(是的,我知道我应该使用PDO)

当我搜索" design"例如,它返回带有单词design的问题\答案。示例结果:"如何开始设计过程?"。这是完美的,但如果我搜索"创建一个设计"没有找到结果,这是不合适的,因为它没有搜索每个单词"创建" ""设计&#34 ;.即使这个问题得到解决,也会产生另一个问题,php需要省略我假设少于4个字符的单词以防止"如何" "做" " I"返回mysql数据库中的每个FAQ结果。

编辑:我可以使用preg_replace轻松删除少于4个字符的单词。

1 个答案:

答案 0 :(得分:0)

我假设您希望您的$ search为:

question LIKE'%创建%'和question LIKE'%a%'和question LIKE'%design%')或(answer LIKE'%创建%'和answer LIKE'%a%'和answer LIKE'%design%')

这将为包含所有单词而不是完整短语的字符串提供“%create a design%”

的结果