Saltar al contenido principal

Cláusula ORDER BY de MySQL

La cláusula `ORDENAR POR` de MySQL se utiliza para ordenar el conjunto de resultados de una consulta por una o varias columnas. Permite la clasificación por orden ascendente o descendente, lo que puede ayudar a organizar los datos de forma significativa.

Utilización

La cláusula `ORDER BY` se aplica al final de una sentencia `SELECT` para ordenar los datos recuperados. Puedes especificar un orden ascendente mediante `ASC` (por defecto) o descendente mediante `DESC`.

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

En esta sintaxis, `ORDENAR POR columna1` ordena el resultado basándose en `columna1`, y se pueden añadir columnas posteriores para una ordenación secundaria.

Ejemplos

1. Clasificación básica

SELECT * 
FROM products
ORDER BY price;

Este ejemplo ordena la tabla `productos` por la columna `precio` en orden ascendente por defecto.

2. Orden descendente

SELECT first_name, last_name
FROM employees
ORDER BY last_name DESC;

Aquí, la tabla `empleados` se ordena por `apellido` en orden descendente, lo que resulta útil para invertir el orden alfabético.

3. Ordenación multicolumna

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

Este ejemplo ordena la tabla `empleados` primero por `departamento` en orden ascendente y luego por `apellido` en orden descendente dentro de cada grupo de departamentos.

4. Ordenar por expresiones

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

En este ejemplo, la tabla `productos` se ordena por un campo calculado `valor_total`, que es una expresión creada mediante un alias.

Consejos y buenas prácticas

  • Utiliza índices de columna. La ordenación es más eficaz en columnas indexadas, lo que reduce el tiempo de consulta.
  • Limita los resultados por rendimiento. Combina `ORDENAR POR` con `LÍMITE` para controlar el número de filas devueltas y mejorar el rendimiento.
  • Especifica la dirección de ordenación. Indica explícitamente la dirección de ordenación (ASC o DESC) para mayor claridad, especialmente en consultas complejas.
  • Evita la clasificación innecesaria. Utiliza `ORDENAR POR` sólo cuando sea necesario un orden específico para minimizar la sobrecarga de la consulta.
  • Ordena por expresiones y alias. Utiliza expresiones o campos calculados, y ordénalos por sus alias para conseguir una ordenación más dinámica.
  • Manejar valores NULL. Por defecto, los valores NULL se ordenan primero en orden ascendente y último en orden descendente. Se pueden hacer ajustes mediante expresiones si se desea un orden diferente.