以數值方式對 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)

在上面,結果按升序排列。

更新日期: 2019 年 7 月 30 日

瀏覽量 2K+

開啟你的 職業生涯

完成課程認證

開始
廣告
© . All rights reserved.