我有一个表,主要字段是content title tags,我给这3个字段加了全文索引,当我用sql搜索他们时候没有问题,可以出来结果,但是我要搜索某人下面的带有关键词的时候,结果就变成了0条记录,难道全文索引不能带and条件?
不带and时候sql,能搜索到结果SELECT * FROM mysqlcft_gbk.test WHERE MATCH(title,content,tags) AGAINST ('我的mysql' IN BOOLEAN MODE);
但是加了and就成了0记录SELECT * FROM mysqlcft_gbk.test WHERE userid = 1 and MATCH(title,content,tags) AGAINST ('我的mysql' IN BOOLEAN MODE);
这是为什么呢?难道必须在我输出时候判断这记录属于谁,那效率不是很慢。
比如userid里面搜也就5百条记录里面搜索,如果不加userid条件,那么可能在上百万的记录里面做全文搜索啊!
SELECT * FROM mysqlcft_gbk.test WHERE MATCH(title,content,tags) AGAINST ('我的mysql' IN BOOLEAN MODE) and userid = 1 ;
将userid放后面试试,索引有个最左匹配原则,userid放前面走匹配不到索引了。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。