创建与SO风格相关的问题

时间:2012-02-01 04:36:12

标签: php mysql

Stack Overflow提供相关问题(在此问题的右侧)。我一直在尝试使用这个PHP代码重新创建它,其中$question_title是用户的问题标题:

<?php

$where='';

$question_title = preg_split('/[\s]+/',$question_title); 
$total_keywords = count($question_title);

foreach($question_title as $key=>$question_title) {
    $where .= "`questiontitle` LIKE '%$question_title%'";
    if ($key != ($total_keywords - 1)) {
        $where .= " AND ";
    }
}

$results="SELECT `questiontitle` FROM questions WHERE $where";

$results_num = ($results=mysql_query($results)) ? mysql_num_rows($results) : 0;
echo $results;

if ($results_num == 0) {                
    return false;       
} else {
    while ($row=mysql_fetch_assoc($results)) {
        echo $row['questiontitle'];
    }
}

?>

问题是此代码仅返回当前问题。我猜我的查询中的LIKE条件太具体了。我如何改变这个以允许出现只有几个常用词的问题?

1 个答案:

答案 0 :(得分:1)

首先,您的数据库中是否有匹配的问题。要解决您的问题,请尝试使用FULLTEXT搜索。您需要在搜索列上设置FULLTEXT索引,然后使用

SELECT * FROM table
WHERE MATCH (column_name) AGAINST ('keyword') syntax.  

点击此链接了解详情MySQL FULLTEXT search