English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

¿Cómo ordenar un campo varchar numéricamente en MySQL?

'LPAD(lower(column_name))' se utiliza para ordenar numéricamente los campos varchar en MySQL. Veamos un ejemplo.

Primero, crearemos una tabla. La orden CREATE se utiliza para crear tablas.

mysql> create table SortingvarcharDemo
   -> (
   -> Lista varchar(10)
   -);

Los registros se insertan con la ayuda de la orden INSERT.

mysql> insert into SortingvarcharDemo values("99;
mysql> insert into SortingvarcharDemo values("9;
mysql> insert into SortingvarcharDemo values("199;
mysql> insert into SortingvarcharDemo values("1;
mysql> insert into SortingvarcharDemo values("999;
mysql> insert into SortingvarcharDemo values("78;

Para mostrar los registros, utilice la orden select.

mysql> select *de SortingvarcharDemo;

Este es el resultado.

+------+
| Lista |
+------+
| 99   |
| 9    |
| 199  |
| 1    |
| 999  |
| 78   |
+------+
6 filas en conjunto (0.05 sec)

En la salida superior, la lista está desordenada-No es ni ascendente ni descendente.

Para ordenar numéricamente en orden ascendente o descendente, utilice la siguiente sintaxis.

SELECT * FROM yourTableName ORDER BY LPAD(lower(Column_name), valor1,valores2) ascendente;

A continuación, se muestra la consulta.

mysql> SELECT * FROM SortingvarcharDemo ORDER BY LPAD(lower(List), 6,0) ascendente;

Este es el resultado.

+------+
| Lista |
+------+
| 1    |
| 9    |
| 78   |
| 99   |
| 199  |
| 999  |
+------+
6 filas en conjunto (0.17 sec)

En la parte superior, los resultados se ordenan en orden ascendente.