在使用子查询的查询中是否会使用多个索引?

时间:2014-03-11 01:56:37

标签: 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));

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

我想知道如何设置上面的用户ID作为子查询,然后从中进行全文搜索,如果那将使用这两个索引?

感谢您的时间和帮助。

1 个答案:

答案 0 :(得分:0)

要创建子查询,请将查询放在逻辑上放置表的位置:

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