Eine Suche mit OR
über einen Schlüssel ist
in MySQL ebenso optimal gelöst wie die Verwendung von
AND
.
Der einzige etwas heikle Fall ist die Suche über zwei
verschiedene Schlüssel, die durch OR
kombiniert sind:
SELECT field1_index, field2_index FROM test_table WHERE field1_index = '1' OR field2_index = '1'
Dieser Fall ist optimiert. Siehe auch Abschnitt 7.2.6, „Optimierung durch Indexverschmelzung“.
Sie können das Problem auch effizient mithilfe einer Union
lösen, die die Ausgabe zweier getrennter
SELECT
-Anweisungen zusammenfasst. Siehe auch
Abschnitt 13.2.7.2, „UNION
“.
Jede SELECT
-Anweisung sucht nur über einen
Schlüssel und kann optimiert werden:
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';
Dies ist eine Übersetzung des MySQL-Referenzhandbuchs, das sich auf dev.mysql.com befindet. Das ursprüngliche Referenzhandbuch ist auf Englisch, und diese Übersetzung ist nicht notwendigerweise so aktuell wie die englische Ausgabe. Das vorliegende deutschsprachige Handbuch behandelt MySQL bis zur Version 5.1.