Erik Darling has Blondie stuck in my head:
The OR operator is a perfectly valid one to use in SQL statements. If you use an IN clause, there’s a reasonable chance that the optimizer will convert it to a series of OR statements.
For example,
IN(1, 2, 3)
could end up being= 1 OR = 2 OR = 3
without you doing a darn thing. Optimizers are funny like that. Funny little bunnies.The problem generally isn’t when asking for IN or OR for a single column, with a list of literal values, the problem is usually when you:
- Use OR across multiple where clause columns
- Use OR in a join clause of any variety
- Use OR to handle NULL parameters or variables
This is an excellent, detailed article and well worth the read.