HOWTO · MySQL

Ordenar datos MySQL en orden alfabético

Este tutorial demuestra cómo ordenar datos en un servidor MySQL en orden alfabético.

En esta página

Para obtener las filas de MySQL ordenadas por nombre de la A a la Z, añade ORDER BY seguido de la columna de texto a tu consulta SELECT. El orden ascendente es el predeterminado; añade DESC para invertirlo, de la Z a la A. Los ejemplos siguientes usan la tabla student_details y su columna stu_firstName.

Crear una tabla en MySQL

La tabla de ejemplo tiene un ID, un nombre y un apellido. Para crearla, ejecuta CREATE TABLE student_details (stu_id INT, stu_firstName VARCHAR(255) DEFAULT NULL, stu_lastName VARCHAR(255) DEFAULT NULL, PRIMARY KEY (stu_id));. Luego añade los registros de ejemplo con INSERT INTO student_details (stu_id, stu_firstName, stu_lastName) VALUES (1, 'Preet', 'Sanghavi'), (2, 'Rich', 'John'), (3, 'Veron', 'Brow'), (4, 'Geo', 'Jos'), (5, 'Hash', 'Shah'), (6, 'Sachin', 'Parker'), (7, 'David', 'Miller');. La clave principal asigna un ID distinto a cada fila de estudiante; los nombres son los valores que se usan en los ejemplos de ordenación. Estas instrucciones SQL son ejemplos de consulta; sus resultados dependen de que las ejecutes en una base de datos MySQL.

Para consultar las filas insertadas, ejecuta SELECT * FROM student_details;. Esta consulta no especifica un orden, así que la base de datos puede devolver las filas en un orden que no sea alfabético. No confíes en el orden de inserción como garantía de ordenación: solicita el orden que necesites en cada consulta.

Ordenar datos alfabéticamente en una base de datos MySQL

La cláusula de ordenación es ORDER BY; ORDER por sí solo no basta. Su forma general es SELECT columns FROM table_name ORDER BY column_name;. Para este ejemplo, selecciona solo los nombres con SELECT stu_firstName FROM student_details ORDER BY stu_firstName;. Como el orden ascendente es el predeterminado, los nombres quedan ordenados alfabéticamente de la A a la Z. La secuencia resultante es David, Geo, Hash, Preet, Rich, Sachin, Veron.

Puedes escribir ASC explícitamente para indicar la dirección: SELECT stu_firstName FROM student_details ORDER BY stu_firstName ASC;. Produce el mismo orden ascendente que si omites la dirección. ASC y DESC son palabras clave de dirección que se escriben después del nombre de la columna en la cláusula ORDER BY.

Para invertir la secuencia, añade DESC: SELECT stu_firstName FROM student_details ORDER BY stu_firstName DESC;. El resultado es Veron, Sachin, Rich, Preet, Hash, Geo, David. Este es un orden alfabético descendente, de la Z hacia la A. La dirección cambia el orden de las filas devueltas, no los valores almacenados; no reorganiza la tabla. Como el ejemplo selecciona solo stu_firstName, el resultado contiene una columna con nombres. Añade stu_id o stu_lastName a la lista de SELECT si quieres ver más detalles en el resultado ordenado; la ordenación seguirá dependiendo de la columna indicada después de ORDER BY.

Adapta la consulta sustituyendo student_details por el nombre de tu tabla y stu_firstName por la columna de texto que quieras ordenar. Mantén la columna en la cláusula ORDER BY aunque selecciones otras columnas, como en SELECT stu_firstName, stu_lastName FROM student_details ORDER BY stu_firstName;. Usa el orden predeterminado o ASC para ordenar de la A a la Z, y DESC para invertir el orden. El orden real de los valores de texto depende de la intercalación de la columna en MySQL, por lo que este ejemplo básico muestra los nombres en inglés proporcionados y no establece reglas de ordenación para otros idiomas.

Si la consulta también filtra filas, coloca ORDER BY después de WHERE; si limita el número de filas devueltas, coloca LIMIT después de la cláusula de ordenación. Por ejemplo, la estructura es SELECT columns FROM table_name WHERE condition ORDER BY column_name DESC LIMIT row_count;. MySQL primero aplica el filtro, luego ordena las filas coincidentes y, por último, devuelve hasta la cantidad solicitada. La columna usada para ordenar debe estar disponible en la consulta, y la dirección se escribe después de su nombre.