從 MySQL 記錄中獲取數字?


使用 CONVERT() 函式或正則表示式。CONVERT() 方法將值從一種資料型別轉換為另一種資料型別。這最終將為我們獲取數字。讓我們看一個示例。

首先,我們將建立一個表。

mysql> create table textIntoNumberDemo
   -> (
   -> Name varchar(100)
   -> );
Query OK, 0 rows affected (0.47 sec)

插入一些記錄。

mysql> insert into textIntoNumberDemo values('John-11');
Query OK, 1 row affected (0.11 sec)

mysql> insert into textIntoNumberDemo values('John-12');
Query OK, 1 row affected (0.17 sec)

mysql> insert into textIntoNumberDemo values('John-2');
Query OK, 1 row affected (0.11 sec)

mysql> insert into textIntoNumberDemo values('John-4');
Query OK, 1 row affected (0.14 sec)

顯示所有記錄。

mysql> select *from textIntoNumberDemo;

以下是輸出。

+---------+
| Name    |
+---------+
| John-11 |
| John-12 |
| John-2  |
| John-4  |
+---------+
4 rows in set (0.00 sec)

提取數字的語法。

SELECT yourColumnName,CONVERT(SUBSTRING_INDEX(yourColumnName,'-',-1),UNSIGNED INTEGER) AS  yourVariableName
FROM yourTableName
order by yourVariableName;

以下為查詢。

mysql> SELECT Name,CONVERT(SUBSTRING_INDEX(Name,'-',-1),UNSIGNED INTEGER) AS MyNumber
   -> FROM textIntoNumberDemo
   -> order by MyNumber;

以下是輸出。

+---------+----------+
| Name    | MyNumber |
+---------+----------+
| John-2  |        2 |
| John-4  |        4 |
| John-11 |       11 |
| John-12 |       12 |
+---------+----------+
4 rows in set (0.00 sec)

更新日期:2019 年 7 月 30 日

192 人瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始
廣告