MySQL搜索查询不起作用

时间:2012-07-26 07:48:19

标签: php mysql search-engine

我正在尝试构建一个基于MySQL FULL TEXT的搜索引擎,我没有得到任何搜索结果。 我正在研究的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,但问题相同。

请在这里建议我做错了什么。

感谢。

3 个答案:

答案 0 :(得分:0)

尝试使用以下内容:

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>";
}

答案 1 :(得分:0)

得到它,修改了查询

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

希望这也有助于其他人。

答案 2 :(得分:0)

$之前您遗失了keyword

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

另请阅读this