我当前的查询是针对特定用户记录的全文搜索。对于该表,我在 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/