我正在使用 MySQL 5.5.31 我想使用 MATCH() 和 AGAINST() 函数。为此,我在 phpMyAdmin 中运行以下查询:
CREATE TABLE articles (
id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
title VARCHAR(200),
body TEXT,
FULLTEXT (title,body)
) ENGINE=MyISAM;
INSERT INTO articles (title,body) VALUES
('MySQL Tutorial','DBMS stands for DataBase ...'),
('How To Use MySQL Well','After you went through a ...'),
('Optimizing MySQL','In this tutorial we will show ...'),
('1001 MySQL Tricks','1. Never run mysqld as root. 2. ...'),
('MySQL vs. YourSQL','In the following database comparison ...'),
('MySQL Security','When configured properly, MySQL ...');
('MySQL table','The database is very large');
为了搜索字符串“数据库”,我运行以下查询:
SELECT * FROM articles
WHERE MATCH (title,body)
AGAINST ('database' IN NATURAL LANGUAGE MODE);
它从包含单词“数据库”的表中返回所有三行。但是当我搜索像“the”这样的其他字符串时,它并没有返回任何东西。它返回空值。我不明白为什么会这样?此外,如果要搜索的字符串出现在标题列中,则返回 null。请问有人能解开我的这两个疑惑吗?提前致谢。