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

Come ordinare un campo varchar numericamente in MySQL?

'LPAD(lower(column_name))' viene utilizzato per ordinare numericamente i campi varchar in MySQL. Vediamo un esempio.

Prima di tutto, creeremo una tabella. Il comando CREATE viene utilizzato per creare tabelle.

mysql> crea tabella SortingvarcharDemo
   -> (
   -> List varchar(10)
   -> );

Le registrazioni sono state inserite con l'aiuto del comando 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");

Per visualizzare le registrazioni, utilizzare il comando select.

mysql> select * from SortingvarcharDemo;

Questo è l'output.

+------+
| List  |
+------+
| 99    |
| 9     |
| 199   |
| 1     |
| 999   |
| 78    |
+------+
6 righe nel set (0.05 sec)

Nel output sopra, l'elenco è disordinato - non è né in ordine crescente né in ordine decrescente.

Per ordinare numericamente in ordine crescente o decrescente, utilizzare la seguente sintassi.

SELECT * FROM yourTableName ORDER BY LPAD(lower(Column_name), value1, values2) asc;

Di seguito è riportata la query.

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

Questo è l'output.

+------+
| List  |
+------+
| 1     |
| 9     |
| 78    |
| 99    |
| 199   |
| 999   |
+------+
6 righe nel set (0.17 sec)

In alto, i risultati sono ordinati in ordine crescente.