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

Comment trier un champ varchar en numérique dans MySQL ?

'LPAD(lower(column_name))' est utilisé pour trier numériquement les champs varchar dans MySQL. regardons un exemple.

Tout d'abord, nous allons créer une table. La commande CREATE est utilisée pour créer une table.

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

Les enregistrements sont insérés avec l'aide de la commande 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);

Pour afficher les enregistrements, utilisez la commande select.

mysql> select *from SortingvarcharDemo;

Ceci est la sortie.

+------+
| Liste |
+------+
| 99   |
| 9    |
| 199  |
| 1    |
| 999  |
| 78   |
+------+
6 rows in set (0.05 sec)

Dans la sortie ci-dessus, la liste est désordonnée-Il n'est ni croissant ni décroissant.

Pour trier numériquement en ordre croissant ou décroissant, utilisez la syntaxe suivante.

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

Voici la requête.

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

Ceci est la sortie.

+------+
| Liste |
+------+
| 1    |
| 9    |
| 78   |
| 99   |
| 199  |
| 999  |
+------+
6 rows in set (0.17 sec)

Dans ce cas, les résultats sont triés par ordre croissant.