MySQL OR Palavra-chave
A palavra-chave `OR` no MySQL é usada para combinar várias condições em instruções SQL, permitindo consultas mais complexas. Ele retornará verdadeiro se qualquer uma das condições especificadas for verdadeira.
Uso
A palavra-chave `OR` é normalmente usada em uma cláusula `WHERE` para filtrar registros com base em várias condições. É útil quando você deseja recuperar linhas que atendam a pelo menos um de vários critérios.
sql
SELECT column1, column2, ...
FROM table_name
WHERE condition1 OR condition2;
Nessa sintaxe, `OR` conecta `condição1` e `condição2`, retornando linhas em que uma das condições é verdadeira.
Exemplos
1. Condição básica de OU
sql
SELECT *
FROM products
WHERE category = 'Electronics' OR category = 'Appliances';
Essa consulta recupera todas as linhas da tabela `products` em que a categoria é 'Electronics' ou 'Appliances'.
2. Combinação de AND e OR
sql
SELECT first_name, last_name
FROM employees
WHERE department = 'Sales' AND (city = 'New York' OR city = 'Los Angeles');
Aqui, a consulta seleciona os funcionários do departamento de "Vendas" que estão localizados em "Nova York" ou "Los Angeles".
3. Uso de OR com várias condições
sql
SELECT order_id, order_date
FROM orders
WHERE status = 'Pending' OR status = 'Processing' OR status = 'Shipped';
Esse exemplo busca pedidos com status "Pendente", "Processando" ou "Enviado", demonstrando o uso de `OR` com várias condições.
Dicas e práticas recomendadas
- Use parênteses para maior clareza. Ao combinar `OR` com `AND`, use parênteses para definir explicitamente a ordem de avaliação.
- Otimize a ordem das condições. Coloque as condições mais restritivas primeiro para melhorar o desempenho. Observe que o `OR` pode afetar o desempenho da consulta, especialmente se não for usado com colunas indexadas.
- Lógica booleana e tipos de dados. O `OR` no MySQL opera com lógica booleana, retornando `TRUE` se pelo menos uma condição for `TRUE`. Observe como o `OR` interage com os valores `TRUE`, `FALSE` e `NULL`.
- Manipulação de NULLs. Certifique-se de que suas condições levem em conta possíveis valores `NULL`, pois eles podem afetar a veracidade de suas condições. Por exemplo:
Isso recupera usuários com mais de 30 anos ou com uma idade não especificada.sql SELECT id FROM users WHERE age > 30 OR age IS NULL;
- Evite o uso excessivo. O uso excessivo de `OR` pode levar a consultas complexas que são difíceis de ler e manter; considere o uso de outras estratégias como `IN` para maior clareza. Por exemplo:
Essa consulta simplifica o uso de várias condições "OU".sql SELECT order_id FROM orders WHERE status IN ('Pending', 'Processing', 'Shipped');
- Índices e desempenho. Para reduzir possíveis lentidões, certifique-se de que as colunas usadas nas condições `OR` sejam indexadas corretamente.