拔出我的头发,试图弄清楚这里有什么问题。
创建表格查询:
CREATE TABLE search_data (
id INT( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
address VARCHAR( 250 ) NOT NULL ,
title VARCHAR( 250 ) NOT NULL ,
time_stamp TIMESTAMP NOT NULL,
FULLTEXT (title)
) ENGINE = MYISAM
搜索代码的查询:
$query = " SELECT * FROM search_data WHERE MATCH (title) AGAINST ('feedback')" ;
$result = mysql_query($query, $connection);
confirm_query($result) ;
while ( $row = mysql_fetch_array($result) )
{
echo "FOUND DATA- " . $row['address'] ;
}
表的内容:http://imgur.com/tXRNs.jpg 由于某种原因(无输出),这不起作用。我只是想不通为什么。请帮忙。
编辑: confirm_query:
function confirm_query($result_set)
{
if (!$result_set)
{
die("Database query failed: " . mysql_error());
}
}
Edit2:手动运行sql查询:我得到“MySQL返回一个空结果集(即零行)。” 我检查了区分大小写,但得到了相同的东西
答案 0 :(得分:2)
前几天我在Mysql的最小搜索长度上被挂起(默认为4个字符...... 4以下的任何内容都没有返回结果)。有关详细信息,请参阅我的帖子:
Why doesnt this complex MySQL query work?
更新: 我发现添加搜索修饰符“IN BOOLEAN MODE”允许查询通过我的测试返回结果:
SELECT * FROM search_data WHERE MATCH (title) AGAINST ('feedback' IN BOOLEAN MODE);
答案 1 :(得分:0)
你的桌子有多大? FULLTEXT
指数在样本量较小时效果不佳。
ETA:
添加几千个随机行。确保它们完全不同。 FULLTEXT不会接收超过50%条目的单词。然后重新运行您的查询。我敢打赌它会起作用。