mysql - 带有子查询的查询中是否使用多个索引?

标签 mysql full-text-search subquery

我当前的查询是针对特定用户记录的全文搜索。对于该表,我在 compColumn 上有一个 FULLTEXT 索引,在 userID 上有一个 bTree。

SELECT K.* FROM k_table AS K WHERE K.userID=2 AND (MATCH (K.compColumn) AGAINST ('+gatsby' IN BOOLEAN MODE));

据我所知,仅使用一个索引,并且在整个表中搜索全文结果,而不是仅对用户 2 的记录进行全文搜索。

我想知道如何将上述内容设置为将用户 ID 作为子查询,然后从中进行全文搜索,以及是否会使用两个索引?

感谢您的时间和帮助。

最佳答案

要进行子查询,您可以在逻辑上放置表的位置放置一个查询:

SELECT
  k2.*
FROM
  (SELECT 
    K.* 
  FROM 
    k_table AS K 
  WHERE K.userID=2) k2
WHERE
  MATCH (K2.compColumn) AGAINST ('+gatsby' IN BOOLEAN MODE);

关于mysql - 带有子查询的查询中是否使用多个索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22314975/

相关文章:

php - MySQL全文搜索结果为html内容

MySQL 使用子查询、内连接和 order by 会产生奇怪的结果

MySQL子查询仅返回顶行结果

MySQL IN 仅返回一行,而 JOIN 查询返回所需结果?

java - 如何读取属性文件并连接 MySQL 数据库?

php - 左加入一些相交

php - 如果未选中复选框,则删除数据库条目

mysql - CMS 的搜索引擎

MySQL:如何进行多表全文搜索

php - "mysqli select"准备语句中的 php 函数出错