Pular para o conteúdo principal
Documentos
FunçõesExpressõesKeywordsDeclaraçõesCláusulas

MySQL IN Keyword

A palavra-chave `IN` no MySQL é usada para especificar vários valores possíveis para uma coluna em uma cláusula `WHERE`. Ele simplifica as consultas complexas, permitindo que você compare o valor de uma coluna com uma lista de valores potenciais.

Uso

A palavra-chave `IN` é usada quando você precisa filtrar dados com base em um conjunto de valores especificados. É particularmente útil para reduzir condições "OU" demoradas.

SELECT column1, column2, ...
FROM table_name
WHERE column_name IN (value1, value2, ...);

Nessa sintaxe, `WHERE column_name IN (value1, value2, ...)` filtra os resultados para incluir apenas as linhas em que o `column_name` corresponde a um dos valores especificados. A palavra-chave `IN` pode ser usada com tipos de dados numéricos, de cadeia de caracteres e de data.

Exemplos

1. Uso básico de IN

SELECT product_name
FROM products
WHERE category_id IN (1, 2, 3);

Essa consulta recupera os nomes de produtos que pertencem a categorias com IDs 1, 2 ou 3.

2. Usando IN com cadeias de caracteres

SELECT employee_id, employee_name
FROM employees
WHERE department IN ('HR', 'Finance');

Aqui, a consulta obtém IDs e nomes de funcionários que trabalham nos departamentos de RH ou Finanças.

3. IN com uma subconsulta

SELECT order_id, order_date
FROM orders
WHERE customer_id IN (SELECT customer_id FROM customers WHERE country = 'USA');

Essa consulta usa `IN` com uma subconsulta para selecionar pedidos feitos por clientes localizados nos EUA.

Dicas e práticas recomendadas

  • Limitar o tamanho da lista. Mantenha a lista de valores curta para manter o desempenho da consulta.
  • Use para uma lógica clara. Substitua várias condições `OR` por `IN` para maior clareza e simplicidade.
  • Combine cuidadosamente com as subconsultas. Certifique-se de que as subconsultas sejam otimizadas, pois elas podem afetar o desempenho.
  • Considere a opção NOT IN. Use `NOT IN` para excluir valores específicos de seu conjunto de resultados de forma eficiente.
  • Trate os NULLs com cuidado. Esteja ciente de que, se a lista de valores incluir `NULL`, você poderá obter resultados inesperados, pois `IN` não corresponde aos valores `NULL`.
  • Considerações sobre o desempenho. Em alguns cenários, o uso do `JOIN` pode oferecer melhor desempenho em comparação com o `IN`. Avalie o contexto de sua consulta para escolher a melhor abordagem.
  • IN vs EXISTS. Considere o uso de `EXISTS` ao lidar com subconsultas que verificam a existência de linhas. O `EXISTS` pode ser mais eficiente em determinados casos em que a existência de uma linha é mais relevante do que a correspondência de valores específicos.

Aprimoramento de SQL para iniciantes

Adquira as habilidades de SQL para interagir com seus dados e consultá-los.
Comece a aprender de graça