Pular para o conteúdo principal

Cláusula ORDER BY do MySQL

A cláusula `ORDER BY` no MySQL é usada para classificar o conjunto de resultados de uma consulta por uma ou mais colunas. Ele permite a classificação em ordem crescente ou decrescente, o que pode ajudar a organizar os dados de forma significativa.

Uso

A cláusula `ORDER BY` é aplicada no final de uma instrução `SELECT` para classificar os dados recuperados. Você pode especificar a ordem crescente usando `ASC` (padrão) ou a ordem decrescente usando `DESC`.

SELECT column1, column2, ...
FROM table_name
ORDER BY column1 [ASC|DESC], column2 [ASC|DESC], ...;

Nessa sintaxe, `ORDER BY column1` classifica o resultado com base em `column1`, e colunas subsequentes podem ser adicionadas para classificação secundária.

Exemplos

1. Classificação básica

SELECT * 
FROM products
ORDER BY price;

Este exemplo classifica a tabela `produtos` pela coluna `preço` em ordem crescente por padrão.

2. Ordem decrescente

SELECT first_name, last_name
FROM employees
ORDER BY last_name DESC;

Aqui, a tabela `employees` é classificada por `last_name` em ordem decrescente, o que é útil para inverter a ordem alfabética.

3. Classificação em várias colunas

SELECT first_name, last_name, department
FROM employees
ORDER BY department ASC, last_name DESC;

Este exemplo classifica a tabela `employees` primeiro por `department` em ordem crescente e, em seguida, por `last_name` em ordem decrescente dentro de cada grupo de departamentos.

4. Classificação por expressões

SELECT product_name, price, quantity, (price * quantity) AS total_value
FROM products
ORDER BY total_value DESC;

Neste exemplo, a tabela `products` é classificada por um campo calculado `total_value`, que é uma expressão criada usando um alias.

Dicas e práticas recomendadas

  • Use índices de coluna. A classificação é mais eficiente em colunas indexadas, reduzindo o tempo de consulta.
  • Limite os resultados para o desempenho. Combine `ORDER BY` com `LIMIT` para controlar o número de linhas retornadas e melhorar o desempenho.
  • Especifique a direção de classificação. Indique explicitamente a direção de classificação (ASC ou DESC) para maior clareza, especialmente em consultas complexas.
  • Evite a classificação desnecessária. Use `ORDER BY` somente quando uma ordem específica for necessária para minimizar a sobrecarga da consulta.
  • Classifique por expressões e aliases. Utilize expressões ou campos calculados e classifique por seus aliases para obter uma ordenação mais dinâmica.
  • Manipulação de valores NULL. Por padrão, os valores NULL são classificados primeiro em ordem crescente e por último em ordem decrescente. Você pode fazer ajustes usando expressões se desejar uma ordem diferente.