Categorías: MySQL

Ordenar registros

Cuando realizamos una consulta los registros obtenidos no tienen un orden definido.
Si son pocos registros y / o somos los únicos que trabajamos con los datos es posible que no represente ningún inconveniente, pero si los datos los va a consultar alguien más, es conveniente utilizar un criterio para ordenar los datos.

ORDER BY

Con ORDER BY podemos ordenar los registros obtenidos de una consulta por una o varias columnas en el orden que designemos.

-- Seleccionar id y título de la tabla publicaciones
-- ordenar por la columna título de manera descendente
-- Z...A

SELECT id, titulo FROM publicaciones ORDER BY titulo DESC;

-- Seleccionar id y título de la tabla publicaciones
-- ordenar por la columna título de manera ascendente
-- A...Z

SELECT id, titulo FROM publicaciones ORDER BY titulo ASC;

-- Si no se especifica la manera en que se quieren ordenar 
-- los registros se va a realizar de manera ascendente
-- A...Z

SELECT id, titulo FROM publicaciones ORDER BY titulo;

NOTA:
Al ordenar por columnas de texto no se hace distinción entre mayúsculas y minúsculas.

Si no se especifica la manera en que se quieren ordenar los registros – ASC, DESC – se ordenará de manera ascendente – ASC -.

Si los resultados se van a ordenar por varias columnas MySQL primero ordena los resultados por la primer columna y, dentro de esos resultados ordena los resultados por la segunda columna – si son mas columnas seguiría por la tercera, etc -.

-- Seleccionar id , usuario_id y título de la tabla publicaciones
-- ordenar por la columna usuario_id de manera ascendente
-- A...Z
-- Una vez que se ordenaron los registros por
-- esta columna ordenar los
-- registros utilizando la columna título
-- también de manera ascendente.
-- El segundo ordenamiento es más visible en los registros que tienen
-- el mismo valor similares en la columna usuario_id


SELECT id, usuario_id, titulo FROM publicaciones ORDER BY usuario_id ASC, titulo ASC;

-- Seleccionar id, usuario_id y  título de la tabla publicaciones
-- ordenar por la columna usuario_id de manera ascendente
-- A...Z
-- Una vez que se ordenaron los registros por
-- esta columna ordenar los
-- registros utilizando la columna título
-- en este caso de manera descendente.
-- El segundo ordenamiento es más visible en los registros que tienen
-- el mismo valor en la columna usuario_id

SELECT id, usuario_id, titulo FROM publicaciones ORDER BY usuario_id ASC, titulo DESC;

Filtrar registros
El utilizar ORDER BY no interfiere con el filtrado de datos – WHERE -, se pueden filtrar los datos y, una vez filtrados se ordenan.

-- Seleccionar id, usuario_id, titulo, vistas, votos
-- de la tabla publicaciones
-- donde la columna usuario_id
-- tenga un valor asignado
-- Ordenar por la columna titulo
-- de manera ascendente

SELECT id, usuario_id, titulo, vistas, votos
FROM publicaciones 
WHERE usuario_id IS NOT NULL
ORDER BY titulo ASC;

-- Seleccionar id, usuario_id, titulo, vistas, votos
-- de la tabla publicaciones
-- donde el valor de la columna votos
-- sea menor a 50.
-- Ordenar por la columna votos
-- de manera descendente (de la publicación
--  más votada a la menos votada).
-- Una vez hecho esto, ordenar por la columna
-- titulo de manera ascendente (A...Z).

SELECT id, usuario_id, titulo, vistas, votos
FROM publicaciones 
WHERE votos < 50
ORDER BY votos DESC, titulo ASC;

-- Seleccionar id, usuario_id, titulo, vistas, votos
-- de la tabla publicaciones
-- donde el valor de la columna vistas
-- sea mayor a 20.
-- Ordenar por la columna vistas
-- de manera descendente (de la publicación
--  con más vistas a la publicación con menos vistas).
-- Una vez hecho esto, ordenar por la columna
-- titulo de manera ascendente (A...Z).

SELECT id, usuario_id, titulo, vistas, votos
FROM publicaciones 
WHERE vistas > 20
ORDER BY vistas DESC, titulo ASC;

Al utilizar ORDER BY tienes más control al momento de presentar los datos.

eamexicano

Publicado por
eamexicano

Entradas recientes

Handbrake CLI

Ya que vimos como crear nuestros propios ajustes la siguiente tarea sería poder codificar nuestro(s)…

2 semanas hace

Crear ajustes personalizados en HandBrake

A veces, al codificar videos con HandBrake, utilizamos ajustes personalizados, los cuales, tenemos que volver…

2 semanas hace

Manipular registros de tabla con referencia a sí misma

En ocasiones cuando queremos manipular - borrar o editar - los registros de una tabla…

5 años hace

Organización de Proyectos

Si ya has hecho sitios o aplicaciones web es probable que tengas una manera de…

5 años hace

LAMP – Funcionamiento

En la publicación de LAMP Stack vimos los componentes de esta plataforma y las tareas…

5 años hace

Inyección SQL

Una inyección de SQL es una vulnerabilidad de las aplicaciones web en la cual el…

5 años hace

Esta web usa cookies.