以数值方式对 MySQL 中的 varchar 字段进行排序?
“LPAD(lower(column_name))”用于按数值顺序排列 MySQL 中的 varchar 字段。我们来看一个示例。
首先,我们将创建一个表。CREATE 命令用于创建表。
mysql> create table SortingvarcharDemo -> ( -> List varchar(10) -> ); Query OK, 0 rows affected (0.82 sec)
使用 INSERT 命令插入记录。
mysql> insert into SortingvarcharDemo values("99"); Query OK, 1 row affected (0.12 sec) mysql> insert into SortingvarcharDemo values("9"); Query OK, 1 row affected (0.17 sec) mysql> insert into SortingvarcharDemo values("199"); Query OK, 1 row affected (0.19 sec) mysql> insert into SortingvarcharDemo values("1"); Query OK, 1 row affected (0.11 sec) mysql> insert into SortingvarcharDemo values("999"); Query OK, 1 row affected (0.10 sec) mysql> insert into SortingvarcharDemo values("78"); Query OK, 1 row affected (0.17 sec)
要显示记录,请使用 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)
在上面,结果按升序排列。
广告