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.
- 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.
ยฟQuรฉ son las palabras clave DESC y ASC?
ASC es la forma corta de ascender |
MySQL 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ร
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 | |
|---|---|---|---|---|---|---|---|
| 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.
La misma consulta en orden ascendente.
SELECCIONAR * DE miembros ORDENAR POR fecha_de_nacimiento 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 | |
|---|---|---|---|---|---|---|---|
| 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 | |
|---|---|---|---|---|---|---|---|
| 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.
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.

ASC es la forma corta de ascender
MySQL DESC es la forma corta de descender

