ORDENAR POR en MySQL: Consulta DESC y ASC con EJEMPLO

Resultados de clasificación

Usando el comando SELECT, los resultados se devolvieron en el mismo orden en que se agregaron los registros a la base de datos. Este es el orden de clasificación predeterminado. En esta sección, veremos cómo podemos ordenar los resultados de nuestra consulta. Ordenar es simplemente reorganizar los resultados de nuestra consulta de una manera específica. La clasificación se puede realizar en una sola columna o en más de una columna. Se puede hacer con tipos de datos numéricos, cadenas y fechas.

¿Qué es ORDER BY en MySQL?

MySQL ORDEN POR se utiliza junto con la consulta SELECT para ordenar los datos de manera ordenada. El MySQL La cláusula ORDER BY se utiliza para ordenar los conjuntos de resultados de la consulta en orden ascendente o descendente.

SELECT statement... [WHERE condition | GROUP BY `field_name(s)` HAVING condition] ORDER BY `field_name(s)` [ASC | DESC];

AQUÍ

  • "Instrucción SELECT... " es la consulta de selección regular
  • ” | “ representa alternativas
  • “[DÓNDE condición | GRUPO POR `nombre_campo(s)` QUE TIENE condición” es la condición opcional utilizada para filtrar los conjuntos de resultados de la consulta.
  • “ORDENAR POR” realiza la clasificación del conjunto de resultados de la consulta
  • “[ASC | DESC]” es la palabra clave utilizada para ordenar los conjuntos de resultados en orden ascendente o descendente. Nota ASC se utiliza por defecto.
  • ¿Qué son las palabras clave DESC y ASC?

    Palabras clave DESC y ASCASC es la forma corta de ascender Palabras clave DESC y ASCMySQL DESC es la forma corta de descender
    Se utiliza para ordenar los resultados de la consulta de arriba a abajo. Se utiliza para ordenar los resultados de la consulta en un estilo de abajo hacia arriba.
    Cuando se trabaja con tipos de datos de fecha, la fecha más antigua se muestra en la parte superior de la lista. . Cuando se trabaja con tipos de fechas, la última fecha se muestra en la parte superior de la lista.
    Cuando se trabaja con tipos de datos numéricos, los valores más bajos se muestran en la parte superior de la lista. Cuando se trabaja con tipos de datos numéricos, los valores más altos se muestran en la parte superior del conjunto de resultados de la consulta.
    Cuando se trabaja con tipos de datos de cadena, el conjunto de resultados de la consulta se ordena desde aquellos que comienzan con la letra A hasta la letra Z. Cuando se trabaja con tipos de datos de cadena, el conjunto de resultados de la consulta se ordena desde aquellos que comienzan con la letra Z hasta la letra A.

    Tanto las palabras clave SQL DESC como ASC se utilizan junto con la instrucción SELECT y MySQL Cláusula ORDER BY.


    Sintaxis DESC y ASC

    La palabra clave de ordenación SQL DESC tiene la siguiente sintaxis básica.

    SELECT {fieldName(s) | *} FROM tableName(s) [WHERE condition] ORDER BY fieldname(s) ASC /DESC [LIMIT N]

    AQUÍ

    • SELECCIONE {nombre(s) de campo | *} FROM nombre(s) de tabla(s) es la declaración que contiene los campos y las tablas de las cuales obtener el conjunto de resultados.
    • [DONDE condición] Es opcional pero se puede utilizar para filtrar los datos según la condición dada.
    • ORDEN POR nombre(s) de campo es obligatorio y es el campo en el que se realizará la clasificación. El MySQL La palabra clave DESC especifica que la clasificación debe realizarse en orden descendente.
    • [LÍMITE] es opcional pero se puede utilizar para limitar el número de resultados devueltos por el conjunto de resultados de la consulta.

    Ejemplos:

    Veamos ahora un ejemplo práctico:

    SELECT * FROM members;

    Ejecutando el script anterior en MySQL El banco de trabajo contra myflixdb nos da los siguientes resultados que se muestran a continuación.

membership_number full_names gender date_of_birth physical_address postal_address contct_number email
1 Janet Jones Female 21-07-1980 First Street Plot No 4 Private Bag 0759 253 542 janetjones@yagoo.cm
2 Janet Smith Jones Female 23-06-1980 Melrose 123 NULL NULL jj@fstreet.com
3 Robert Phil Male 12-07-1989 3rd Street 34 NULL 12345 rm@tstreet.com
4 Gloria Williams Female 14-02-1984 2nd Street 23 NULL NULL NULL
5 Leonard Hofstadter Male NULL Woodcrest NULL 845738767 NULL
6 Sheldon Cooper Male NULL Woodcrest NULL 976736763 NULL
7 Rajesh Koothrappali Male NULL Woodcrest NULL 938867763 NULL
8 Leslie Winkle Male 14-02-1984 Woodcrest NULL 987636553 NULL
9 Howard Wolowitz Male 24-08-1981 SouthPark P.O. Box 4563 987786553


Supongamos que el departamento de marketing desea que los datos de los miembros estén ordenados en orden decreciente según la fecha de nacimiento. Esto les permitirá enviar felicitaciones de cumpleaños de manera oportuna. Podemos obtener dicha lista ejecutando una consulta como la siguiente:

SELECT * FROM members ORDER BY date_of_birth DESC;

Ejecutando el script anterior en MySQL El banco de trabajo contra myflixdb nos da los siguientes resultados que se muestran a continuación.

Ejemplo DESC y ASC

La misma consulta en orden ascendente.

SELECCIONAR * DE miembros ORDENAR POR fecha_de_nacimiento ASC

Ejemplo DESC y ASC

Nota: Los valores NULL significan que no hay valores (ni cero ni una cadena vacía). Observe la forma en que han sido ordenados.

Más ejemplos

Consideremos el siguiente script SQL de ordenación que enumera todos los registros de miembros.

SELECT * FROM `members`;

La ejecución del script anterior arroja los siguientes resultados que se muestran a continuación.

membership_number full_names gender date_of_birth physical_address postal_address contct_number email
1 Janet Jones Female 21-07-1980 First Street Plot No 4 Private Bag 0759 253 542 janetjones@yagoo.cm
2 Janet Smith Jones Female 23-06-1980 Melrose 123 NULL NULL jj@fstreet.com
3 Robert Phil Male 12-07-1989 3rd Street 34 NULL 12345 rm@tstreet.com
4 Gloria Williams Female 14-02-1984 2nd Street 23 NULL NULL NULL
5 Leonard Hofstadter Male NULL Woodcrest NULL 845738767 NULL
6 Sheldon Cooper Male NULL Woodcrest NULL 976736763 NULL
7 Rajesh Koothrappali Male NULL Woodcrest NULL 938867763 NULL
8 Leslie Winkle Male 14-02-1984 Woodcrest NULL 987636553 NULL
9 Howard Wolowitz Male 24-08-1981 SouthPark P.O. Box 4563 987786553 NULL


Supongamos que queremos obtener una lista que ordene el conjunto de resultados de la consulta utilizando el campo de género, usaríamos el script que se muestra a continuación.

SELECT * FROM `members` ORDER BY `gender`;
membership_number full_names gender date_of_birth physical_address postal_address contct_number email
1 Janet Jones Female 21-07-1980 First Street Plot No 4 Private Bag 0759 253 542 janetjones@yagoo.cm
2 Janet Smith Jones Female 23-06-1980 Melrose 123 NULL NULL jj@fstreet.com
4 Gloria Williams Female 14-02-1984 2nd Street 23 NULL NULL NULL
3 Robert Phil Male 12-07-1989 3rd Street 34 NULL 12345 rm@tstreet.com
5 Leonard Hofstadter Male NULL Woodcrest NULL 845738767 NULL
6 Sheldon Cooper Male NULL Woodcrest NULL 976736763 NULL
7 Rajesh Koothrappali Male NULL Woodcrest NULL 938867763 NULL
8 Leslie Winkle Male 14-02-1984 Woodcrest NULL 987636553 NULL
9 Howard Wolowitz Male 24-08-1981 SouthPark P.O. Box 4563 987786553 NULL

Los miembros “Femeninos” se han mostrado primero, seguidos de los miembros “Masculinos”, esto se debe a que cuando se utiliza la cláusula ORDER BY DESC sin especificar el ASC o MySQL Palabra clave DESC, por defecto, MySQL ha ordenado el resultado de la consulta establecido en orden ascendente.

Veamos ahora un ejemplo que hace lo ordenar usando dos columnas; El primero es ordenados in orden ascendente de forma predeterminada, mientras que la segunda columna es ordenados in orden descendiente.

SELECT * FROM `members` ORDER BY `gender`,`date_of_birth` DESC;

Ejecutando el script anterior en MySQL El banco de trabajo contra myflixdb arroja los siguientes resultados.

Ejemplo DESC y ASC

La columna de género se ordenó en orden ascendente de forma predeterminada, mientras que la columna de fecha de nacimiento se ordenó en orden descendente explícitamente.

¿Por qué podemos usar DESC y ASC?

Supongamos que queremos imprimir un historial de pagos para un miembro de la videoteca para ayudar a responder consultas desde la recepción, ¿no sería más lógico imprimir los pagos en orden cronológico descendente, comenzando con el pago reciente hasta el pago anterior?

DESC en SQL es una palabra clave que resulta útil en tales situaciones. Podemos escribir una consulta que ordene la lista en orden descendente utilizando la fecha de pago.

Supongamos que el departamento de marketing quiere obtener una lista de películas por categoría que los miembros pueden usar para decidir qué películas están disponibles en la biblioteca al alquilar películas, ¿no sería más lógico ordenar los nombres y títulos de las categorías de películas en orden ascendente para que ¿Los miembros pueden buscar rápidamente la información de la lista?

La palabra clave ASC resulta útil en tales situaciones; Podemos obtener la lista de películas ordenadas por nombre de categoría y título de película en orden ascendente.

Resumen

  • Ordenar los resultados de una consulta consiste en reorganizar las filas devueltas por un conjunto de resultados de una consulta en orden ascendente o descendente.
  • La palabra clave DESC en SQL se utiliza para ordenar el conjunto de resultados de la consulta en orden descendente.
  • La palabra clave ASC se utiliza para ordenar el conjunto de resultados de la consulta en orden ascendente.
  • Tanto DESC como ASC funcionan junto con la palabra clave ORDER BY. También se pueden utilizar en combinación con otras palabras clave como Dónde cláusula y LÍMITE
  • El valor predeterminado para ORDER BY cuando no se ha especificado nada explícitamente es ASC.