MySQL搜索查询不起作用


MySQL Search Query Not Working

我正在尝试构建一个基于MySQL全文的搜索引擎,我没有得到任何搜索结果。我正在开发的MySQL版本是5.5.24,它支持Innodb的全文。因此,为了提高速度,我将数据库类型保留为Innodb,而且我的排序规则是utf8mb4_unicode_ci。

我已经将字段"title"类型设置为TEXT,并修改了类似的表"test_table"。

ALTER TABLE `test_table` ADD FULLTEXT (`title`)

我正在写这样的查询,但并没有显示结果。

    require_once('../global/includes/connect.php');
$db = mysql_select_db($database,$connection) or trigger_error("SQL", E_USER_ERROR);
$sqlquery = mysql_query("SELECT title FROM test_table WHERE MATCH(title) AGAINST ('%keyword%')");
while($row=mysql_fetch_assoc($sqlquery)){
echo $row['title'];
echo"</br>";
}

对于像这个这样的查询

    $sqlquery = mysql_query("SELECT title FROM test_table ");
while($row=mysql_fetch_assoc($sqlquery)){
echo $row['title'];
echo"</br>";

显示结果。

我尝试将数据库更改为MyISAM,但出现了同样的问题。

请说明我在这里做错了什么。

谢谢。

尝试使用以下方法:

require_once('../global/includes/connect.php');
$db = mysql_select_db($database,$connection) or trigger_error("SQL", E_USER_ERROR);
$sqlquery = mysql_query("SELECT MATCH(title) FROM test_table WHERE MATCH(title) AGAINST ('security')") OR die(mysql_error());
while($row=mysql_fetch_assoc($sqlquery)){
echo $row['title'];
echo"</br>";
}

得到它,修改了查询

$sqlquery = mysql_query("SELECT title FROM test_table WHERE MATCH (title) AGAINST ('keyword' IN BOOLEAN MODE) ")or die (mysql_error());

希望这也能帮助其他人。

您在keyword之前缺少$

$sqlquery = mysql_query("SELECT title FROM test_table 
                         WHERE MATCH(title) AGAINST ('%$keyword%')"); 
                                                       ^

另请阅读this