我正在尝试通过复合索引从具有 PRIMARY KEY (a, b) 的表中获取几条记录
SELECT * FROM table WHERE (a, b) IN ((1,2), (2,4), (1,3))
问题是,即使我使用 FORCE INDEX ( PRIMARY
),MySQL 也没有使用索引。
EXPLAIN SELECT 显示 null possible_keys。
为什么没有可能的密钥?
通过复合键检索多行的最佳方法是什么:
- 使用或
- 使用 UNION ALL
- 使用 WHERE () IN ((),())
PS 查询结果等于
SELECT * FROM table WHERE (a = 1 AND b = 2) OR (a = 2 AND b = 4) OR (a = 1 AND b = 3)
谢谢