【发布时间】:2011-02-22 02:48:16
【问题描述】:
我在 MySQL FULLTEXT 搜索中遇到了区分大小写的问题。
我刚刚在http://dev.mysql.com/doc/refman/5.1/en/fulltext-boolean.html 的 MySQL 文档中遵循 FULLTEXT 示例。为了方便参考,我会放在这里...
CREATE TABLE articles (
id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
title VARCHAR(200),
body TEXT,
FULLTEXT (title,body)
);
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 ...');
SELECT * FROM articles
WHERE MATCH (title,body)
AGAINST ('database' IN NATURAL LANGUAGE MODE);
...我的问题是该示例显示 SELECT 返回第一行和第五行('..DataBase..' 和 '..database..')但我只得到一个行('数据库')!
该示例未演示示例中的表具有什么排序规则,但我最终在示例表的标题和正文列上使用了 latin1_general_cs。
我的 MySQL 版本是 5.1.39-log,连接排序规则是 utf8_unicode_ci 。
如果有人能提出我的经验与手册中的示例不同的原因,我将不胜感激!
感谢任何建议。
【问题讨论】: