以數值方式對 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)
在上面,結果按升序排列。
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP