因为这个表有 10万的文章数据,如果用like 查询十分缓慢,现状想到用 fulltext 但是发现找不到数据。CREATE TABLE `zb_article` (
`aid` int(11) NOT NULL AUTO_INCREMENT,
`title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
`content_text` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '纯文本,无HTML源码',
PRIMARY KEY (`aid`),
FULLTEXT KEY `title` (`title`,`content_text`)
) ENGINE=InnoDB AUTO_INCREMENT=7578 DEFAULT CHARSET=utf8;
insert into zb_article values(NULL,'前广场工程PPP项目','(高铁站)(ppp)合同.pdf');# 有结果
select * from zb_article where match(title,content_text) against('高铁站');
select * from zb_article where match(title,content_text) against('PPP');
# 以下为空
select * from zb_article where match(title,content_text) against('合同');
select * from zb_article where match(title,content_text) against('广场');
select * from zb_article where match(title,content_text) against('项目');
`aid` int(11) NOT NULL AUTO_INCREMENT,
`title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
`content_text` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '纯文本,无HTML源码',
PRIMARY KEY (`aid`),
FULLTEXT KEY `title` (`title`,`content_text`)
) ENGINE=InnoDB AUTO_INCREMENT=7578 DEFAULT CHARSET=utf8;
insert into zb_article values(NULL,'前广场工程PPP项目','(高铁站)(ppp)合同.pdf');# 有结果
select * from zb_article where match(title,content_text) against('高铁站');
select * from zb_article where match(title,content_text) against('PPP');
# 以下为空
select * from zb_article where match(title,content_text) against('合同');
select * from zb_article where match(title,content_text) against('广场');
select * from zb_article where match(title,content_text) against('项目');
解决方案 »
- centos下mysql当掉
- linux下怎么启动mysql
- 急求一条SQL语句
- AUTO_INCREMENT 是不是必须设成主键
- SQL语句
- jsp+tomcat ,怎样配置连接池 (最好有例子)
- 针对MYSQL,多表查询,如何优化?
- 请问将文件导入数据库保存和在数据库字段中保存文件地址,两种方法有什么优劣?还有其他的方法吗?
- mysql + myodbc + pb 的客户/服务器开发的讨论!如何保证datawindow的出错后的rollback
- 查询并返回表的全部字段,并更新某一字段
- 从数据库导出到excel只显示前三行数据,求解决方法!
- 菜鸟一个,mysql.sock和mysql.sock.lock什么关系啊
全文索引只能按单词来查询。 比如 今天是星期天。
想检查 星期天 是查不出结果的, 只有 “ 今天是 星期天”,
中间有空格或其它类的间隔开,星期天被认为是一个单词,才会被查询出来
`id` int(11) NOT NULL AUTO_INCREMENT,
`title` varchar(200) DEFAULT NULL,
`body` text,
PRIMARY KEY (`id`),
FULLTEXT KEY `title` (`title`,`body`) /*!50100 WITH PARSER `ngram` */
) ENGINE=InnoDB DEFAULT CHARSET=utf8;你上面查询到结果,你看下你的相关度,是0,要用ngram支持中文才可以