Cómo ordenar una consulta de MySQL utilizando ORDER by (En 6 Pasos)
Las filas de una consulta de MySQL SELECT se devuelven en un orden arbitrario e impredecible. Dado que el retorno tiene que ver más con el hash interno y algoritmos de búsqueda que con tus datos, el orden de las filas no suele ser útil para un programador. Para devolver las filas en un orden significativo, puedes utilizar la cláusula ORDER BY del comando SELECT.
Paso 1
Forma el comando SELECT básico para devolver las filas en las que estés interesado. En este punto, el orden en que se devuelven no es de importancia. En este ejemplo se consulta una base de datos de clientes para obtener una lista de clientes con saldos negativos. Ejemplo: SELECT * FROM clientes WHERE balance <0.0;
Paso 2
Agrega una cláusula ORDER BY. Ésta le dirá al servidor MySQL que ordene las filas por columna. Por ejemplo, si quieres ver todas las cuentas pendientes en orden de su balance, puedes agregar "ORDER BY balance" al final de la consulta. Ejemplo: SELECT * FROM clientes WHERE balance <0.0 ORDER BY balance;
Paso 3
Define en qué dirección ordenar, ya que el orden de las filas devueltas aún podría no ser significativo. Las filas se pueden devolver en orden ascendente o descendente.
Paso 4
Utiliza ASC o DESC. Utilizando ASC ordenarás los datos para que puedas ver el número más pequeño primero. Utilizando DESC ordenarás los datos para que puedas ver el mayor número primero. En esta consulta, se busca a los clientes con el mayor saldo negativo primero. ORDER BY devolverá los conjuntos con el mayor número negativo (el número más pequeño) en la parte superior. Ejemplo: SELECT * FROM clientes WHERE balance <0.0 ORDER BY balance ASC;
Paso 5
Ordena por varias columnas, ya que a veces te encontrarás con grandes grupos de filas que fueron ordenadas en el mismo número. Por ejemplo, si hay 100 clientes en tu base de datos con un saldo de 0, los mismos aparecen en orden arbitrario. Es mejor tener al menos dos criterios de clasificación para situaciones como ésta.
Paso 6
Utiliza múltiples criterios de clasificación separados por comas. Aquí, los clientes se muestran en orden alfabético por el nombre después de haber sido ordenados por el balance. Ejemplo: SELECT * FROM clientes WHERE balance < 0.0 ORDER BY balance, nombre ASC;