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条件太具体了。我如何改变这个以允许出现只有几个常用词的问题?
答案 0 :(得分:1)
首先,您的数据库中是否有匹配的问题。要解决您的问题,请尝试使用FULLTEXT
搜索。您需要在搜索列上设置FULLTEXT
索引,然后使用
SELECT * FROM table
WHERE MATCH (column_name) AGAINST ('keyword') syntax.
点击此链接了解详情MySQL FULLTEXT search