我已关注this tutorial进行mysql全文搜索。
我有这张桌子:
CREATE TABLE IF NOT EXISTS `test` (
`id` int(20) NOT NULL AUTO_INCREMENT,
`textrow` varchar(256) NOT NULL,
PRIMARY KEY (`id`),
FULLTEXT KEY `textrow` (`textrow`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=3 ;
INSERT INTO `test` (`id`, `textrow`) VALUES
(1, 'Agajan Torayev'),
(2, 'torayeff');
ALTER TABLE test ADD FULLTEXT(textrow);
这些查询之间有什么区别(一个给出零结果):
mysql> SELECT * FROM test WHERE MATCH(textrow) AGAINST('agajan');
Empty set (0.00 sec)
和
mysql> SELECT *, MATCH(textrow) AGAINST('agajan') FROM test;
+----+----------------+----------------------------------+
| id | textrow | MATCH(textrow) AGAINST('agajan') |
+----+----------------+----------------------------------+
| 1 | Agajan Torayev | 0 |
| 2 | torayeff | 0 |
+----+----------------+----------------------------------+
2 rows in set (0.00 sec)
答案 0 :(得分:1)
不同之处在于,在第一个查询中,您使用match
数据过滤结果,使用第二个查询输出所有记录,并添加一列以显示match
将导致的结果。< / p>
你没有得到结果,因为
自然语言搜索将搜索字符串解释为自然人类语言(自由文本中的短语)中的短语。 [...]此外,50%或更多行中出现的字词被认为是常见且不匹配。