在MySQL中以数字方式对varchar字段进行排序?

'LPAD(lower(column_name))'用于在MySQL中对varchar字段进行数字排序。让我们来看一个例子。

首先,我们将创建一个表。CREATE命令用于创建表。

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

记录是在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");

要显示记录,请使用select命令。

mysql> select *from SortingvarcharDemo;

这是输出。

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

在上面的输出中,列表是无序的-它既不是升序也不是降序。

要按升序或降序对其进行数字排序,请使用以下语法。

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

以下是查询。

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

这是输出。

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

在上面,结果按升序排序。