MySQL 8.0 参考手册  / 第 3 章教程  / 3.6 常见查询示例  /  3.6.7 搜索两个键

3.6.7 搜索两个键

一个OR使用单个键的优化很好,处理也是如此 AND

一个棘手的案例是搜索两个不同的键结合OR

SELECT field1_index, field2_index FROM test_table
WHERE field1_index = '1' OR  field2_index = '1'

这个案例是优化过的。请参阅 第 8.2.1.3 节,“索引合并优化”

您还可以通过使用 UNION组合两个单独SELECT语句的输出的 a 来有效地解决问题。请参阅第 13.2.10.3 节,“UNION 子句”

每个SELECT只搜索一个键并且可以优化:

SELECT field1_index, field2_index
    FROM test_table WHERE field1_index = '1'
UNION
SELECT field1_index, field2_index
    FROM test_table WHERE field2_index = '1';