MySQL字串中抽取數值的方法
MySQL的字串函式非常多,以至於有時候我不知道該如何靈活的使用這些函式。
字串基本資訊函式 collation convert,char_length等
加密函式 password(x),encode, aes_encrypt
字串連線函式 concat(x1,x2,….)
修剪函式 trim,ltrim,rtrim
子字串操作函式 substring(x,start,length),mid(x,start,length)
字串複製函式 repeat,space
字串比較函式 strcmp
字串逆序函式 reverse
假設我有如下的需求,比如郵箱註冊賬號,指定賬號是以數字開頭,內容如下:
1234@mail.com
012345@aa.mail.com
1234mm@mail.com
1234test@mail.com
如果需要把裡面的數字提取出來,有什麼好的辦法呢。
如果使用字串函式,一種方式就是使用正則,或者直接給定條件來做過濾。
比如replace(xxxx,right(xxx))
還有一種思路就是建立一個函式或者儲存過程,透過結構化的方法來做轉換。
如上的幾種方法其實都比較麻煩,還有什麼辦法呢,我就舉一反三,給出兩個來。
第一個解法就是使用字串的資料型別轉換。
比如:
mysql> select cast('123456@xx.com' as unsigned);
+------------------------------------+
| cast('123456@xx.com' as unsigned) |
+------------------------------------+
| 123456 |
+------------------------------------+
1 row in set, 1 warning (0.00 sec)
我們可以很明顯看到結果和一個警告。
mysql> show warnings;
+---------+------+-----------------------------------------------------+
| Level | Code | Message |
+---------+------+-----------------------------------------------------+
| Warning | 1292 | Truncated incorrect INTEGER value: '123456@163.com' |
+---------+------+-----------------------------------------------------+
1 row in set (0.00 sec)
解法二:
這個解法更簡單,有種鬼斧神工的感覺。
mysql> select -(-'123456@163.com');
+----------------------+
| -(-'123456@163.com') |
+----------------------+
| 123456 |
+----------------------+
1 row in set, 1 warning (0.00 sec)
如果是前面含有冗餘的數字,也是可以轉換的。
mysql> select -(-'012345@aa.mail.com');
+--------------------------+
| -(-'012345@aa.mail.com') |
+--------------------------+
| 12345 |
+--------------------------+
1 row in set, 1 warning (0.00 sec)
大家如果有更好的辦法,歡迎拍磚。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29371470/viewspace-2147170/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 抽取字串中數字的函式字串函式
- 如何在 Bash 中抽取子字串字串
- mysql 字串型別的數值欄位按照數值的大小進行排序MySql字串型別排序
- 關於字串分類抽取的幾個方法字串
- SQL 如何拆分字串中的數值後排序SQL字串排序
- 如何拆出字串中的數值並排序字串排序
- 再說mysql中的變數賦值MySql變數賦值
- javascript中將數字轉為字串的方法JavaScript字串
- MySQL中變數的定義和變數的賦值使用MySql變數賦值
- JZ-053-表示數值的字串字串
- 劍指Offer 表示數值的字串字串
- 【Mysql學習】算術運算及字串,數值函式MySql字串函式
- 【Mysql 學習】算術運算及字串,數值函式MySql字串函式
- JS中將一個值轉換為字串的3種方法JS字串
- js中的字串方法JS字串
- 【Kmp求字串字首在字串出現的次數】51nod 1277 字串中的最大值KMP字串
- [20211227]抽取跟蹤檔案中的繫結變數值.txt變數
- MySQL 查詢字串的個數MySql字串
- 對Boost庫中的數值到字串的轉換的改進 (轉)字串
- 《劍指offer》:[54]表示數值的字串字串
- mssql sqlserver 從指定字串中獲取數字的方法SQLServer字串
- Android筆記:獲取url或uri字串中的引數值Android筆記字串
- 數值分析方法
- 劍指Offer系列之「表示數值的字串」字串
- mysql相同數值排序MySql排序
- mongodb查詢資料庫中某個欄位中的值包含某個字串的方法MongoDB資料庫字串
- JavaScript 字串轉換數值型別JavaScript字串型別
- Shell 程式設計 : 數值,字元,字串程式設計字元字串
- 數字訊號處理基礎----插值、抽取濾波器
- 如何從字串文字中拆解出多個數值並計算字串
- 【數值計算方法】數值積分&微分
- vue中渲染值的方法Vue
- 簡單介紹Lua中的變數與賦值方法變數賦值
- DWR中Java方法的引數及返回值、物件javabeanJava物件Bean
- 【轉】Java中判斷字串是否為數字的五種方法Java字串
- MySQL查詢某個列中相同值的數量統計MySql
- 巧取字串中的數字字串
- 字串、數值 等型別的相互 安全轉換字串型別