我想做的是在我的表格中搜索一个特殊词:
SELECT * FROM my_table WHERE MATCH (description) AGAINST ('test');
这将返回my_table中包含字符串'test'的所有行。
问题是这种情况并非总能发生。这意味着在我重新创建表之后它有时会起作用。
CREATE TABLE my_table
(date date,
time time,
name varchar(50),
description text,
FULLTEXT INDEX (description)) ENGINE=MYISAM;
因为它只是偶尔发生,所以它让我相信索引必定存在一些问题。
所以我尝试将ft_min_word_len设置为1,什么也没做。 我的MySQLVersion是5.1.57-community。
感谢您的帮助。
答案 0 :(得分:2)
匹配和反对是一种自然语言搜索。如果你的列包含你在against()参数中传递的50%或更多,它将被认为是常见的,不会返回任何内容。只需使用SELECT * FROM my_table WHERE DESCRIPTION LIKE '%test%'
,其中%通配符表示在之前或之后有单词或短语或后缀/前缀。
此处阅读http://dev.mysql.com/doc/refman/5.5/en/fulltext-search.html了解详情