开发者社区> 问答> 正文

mysql中有关全文索引加and条件问题

我有一个表,主要字段是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条件,那么可能在上百万的记录里面做全文搜索啊!

展开
收起
落地花开啦 2016-02-13 09:49:26 2827 0
1 条回答
写回答
取消 提交回答
  • 喜欢技术,喜欢努力的人

    SELECT * FROM mysqlcft_gbk.test WHERE MATCH(title,content,tags) AGAINST ('我的mysql' IN BOOLEAN MODE) and userid = 1 ;
    将userid放后面试试,索引有个最左匹配原则,userid放前面走匹配不到索引了。

    2019-07-17 18:41:44
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
搭建电商项目架构连接MySQL 立即下载
搭建4层电商项目架构,实战连接MySQL 立即下载
PolarDB MySQL引擎重磅功能及产品能力盛大发布 立即下载

相关镜像