MySQL OR Operator
The OR
operator in MySQL is used to combine two or more conditions in a SQL query. It returns results when at least one of the conditions evaluates to TRUE
. The OR
operator is commonly used in the WHERE
, HAVING
, and ON
clauses of a query.
Syntax
condition1, condition2, ...
: These are the logical conditions to evaluate.- The result is
TRUE
if any of the conditions isTRUE
. - If all conditions are
FALSE
, the result isFALSE
.
Examples
1. Using OR in a WHERE Clause
This query retrieves employees whose department is either HR or Finance.
Result:
employee_id | first_name | department_id |
---|---|---|
101 | John | 1 |
102 | Sarah | 2 |
2. Using OR with Multiple Conditions
This query fetches products that have either a price greater than 100 or a stock less than 50.
Result:
product_name | price | stock |
---|---|---|
Product A | 150 | 40 |
Product B | 90 | 30 |
3. Combining OR and AND
You can combine the OR
operator with the AND
operator for more complex conditions. Use parentheses to clarify precedence.
Explanation:
- The query selects:
- Completed orders placed after January 1, 2025.
- Pending orders with a total amount greater than 500.
4. Using OR in a HAVING Clause
This query groups orders by customer and filters results where the total amount is greater than 1000 or the total number of orders is greater than 10.
5. OR in a JOIN Condition
The OR
operator can also be used in the ON
clause of a JOIN
statement.
Behavior with NULL
- If any condition evaluates to
NULL
, the result depends on the other conditions:- If another condition evaluates to
TRUE
, the overall result isTRUE
. - If all other conditions are
FALSE
, the result isNULL
(treated asFALSE
in practical queries).
- If another condition evaluates to
Example:
Performance Tips
- Indexing:
- MySQL might not efficiently use indexes when
OR
is used with non-indexed columns. Consider usingUNION
instead for better performance in such cases. - Example:
- MySQL might not efficiently use indexes when
- Parentheses:
- Use parentheses to ensure correct operator precedence, especially when combining
OR
andAND
.
- Use parentheses to ensure correct operator precedence, especially when combining
Practical Use Cases
- Fetching data based on alternative conditions (e.g., multiple status values or categories).
- Combining filters for dynamic search queries.
- Creating flexible query logic in user-driven applications.
Let me know if you'd like additional examples or clarifications!