1. 程式人生 > >MySQL字串中抽取數值的方法

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

如果真給一個場景,還真說不定能夠拍胸脯適合。

假設我有如下的需求,比如郵箱註冊賬號,指定賬號是以數字開頭,內容如下:

[email protected]

[email protected]

[email protected]

[email protected]

如果需要把裡面的數字提取出來,有什麼好的辦法呢。

如果使用字串函式,一種方式就是使用正則,或者直接給定條件來做過濾。

比如replace(xxxx,right(xxx))

還有一種思路就是建立一個函式或者儲存過程,通過結構化的方法來做轉換。

如上的幾種方法其實都比較麻煩,還有什麼辦法呢,我就舉一反三,給出兩個來。

第一個解法就是使用字串的資料型別轉換。

比如:

mysql> select cast('[email protected]

' as unsigned);
+------------------------------------+
| cast('[email protected]' as unsigned) |
+------------------------------------+
|                             123456 |
+------------------------------------+
1 row in set, 1 warning (0.00 sec)

我們可以很明顯看到結果和一個警告。

mysql> show warnings;
+---------+------+-----------------------------------------------------+
| Level   | Code | Message                                             |
+---------+------+-----------------------------------------------------+
| Warning | 1292 | Truncated incorrect INTEGER value: '

[email protected]' |
+---------+------+-----------------------------------------------------+
1 row in set (0.00 sec)

解法二:

這個解法更簡單,有種鬼斧神工的感覺。
mysql> select -(-'[email protected]');
+----------------------+
| -(-'[email protected]') |
+----------------------+
|               123456 |
+----------------------+
1 row in set, 1 warning (0.00 sec)

如果是前面含有冗餘的數字,也是可以轉換的。

mysql> select -(-'[email protected]');
+--------------------------+
| -(-'[email protected]') |
+--------------------------+
|                    12345 |
+--------------------------+
1 row in set, 1 warning (0.00 sec)

大家如果有更好的辦法,歡迎拍磚。

相關推薦

MySQL字串抽取數值方法

MySQL的字串函式非常多,以至於有時候我不知道該如何靈活的使用這些函式。字串基本資訊函式     collation  convert,char_length等加密函式   password(x),encode,  aes_encrypt字串連線函式   concat(x1

Python去除字串空格的方法

Python中去除字串中指定字元或者空格的方法有幾種: str.strip() //該方法用於去除字串開頭和結尾的指定字元或字串(預設為空格或換行符) str.lstrip() //該方法用於截掉字串左邊的空格或指定字元 str.rstrip() //該方法用於截掉字串右邊的空格或指定字元

Java 去除字串空格的方法

1、方法分類 str.trim(); //去掉首尾空格 str.replace(" ",""); //去除所有空格,包括首尾、中間 str.replaceAll(" ", ""); //去掉所有空格,包括首尾、中間 str.replaceAll(" +

java 對字串數值排序

對"34 9 -7 12 67 25"這個字串中的數值從小到大排序! 介紹幾個快捷鍵:for+"alt+/"快速寫一個for迴圈     選中某一個小寫單詞 Ctrl+Shift+x  可變大寫         選中某一個大寫單詞 Ctrl+Shift+y  可變小寫 下面

python去掉字串空格的方法

1.strip():把頭和尾的空格去掉 2.lstrip():把左邊的空格去掉 3.rstrip():把右邊的空格去掉 4.replace(‘c1’,’c2’):把字串裡的c1替換成c2。故可以用replace(’ ‘,”)來去掉字串裡的所有空格 5

sqlserver,一個自定義函式(提取字串數值,包含0-9和‘.’)

GO ALTER FUNCTION [dbo].[clear_num](@s VARCHAR(100)) RETURNs VARCHAR(100) as BEGIN WHILE PATINDEX('%[^0-9.]%', @s)>=1 BEGIN set @s=

C 查詢字元在字串位置的方法

/*****************************************************************************     *  @COPYRIGHT NOTICE     *  @Copyright (c) 2013, ChenM

java 使用TreeSet將字串數值進行排序

一、使用類 1、TreeSet類 add(E e) 將指定的元素新增到此 set 2、String類 split(String regex) 根據給定正則表示式的匹配拆分此字串。返回字串陣

C#三種方法轉換字串變成數值型別

    第一種方法:convert.to…的方法     直接看例題就行:     第二種方法: int.parse(string)方法     再舉例:     第三種方法:int

三個獲取瀏覽器URL數值方法

() 遇到 col reg object win 瀏覽器 component 般的 這三個是一般的獲取瀏覽器傳的參數值的方法,之前有用unescape()解碼的方法,但是遇到漢字會產生亂碼,所以用decodeURI(); 方法一: function getQueryStr

已經設置utf8的mysql cmd插入中文執行報錯解決方法

客戶 res img 說明 設置 -1 bsp 插入 gbk 說明cmd客戶端的字符集是gbk,結果集也要設置為gbk。 使用語句 set character_set_client=gbk; set character_set_results=gbk; 就

Navicat for MySql 輸入文字符,提示1366錯誤的解決方法

截圖 san 解決 中文字符 clas 解決方法 無法 輸入中文 參考 若表格已經保存了默認的字符集,無法輸入中文字符 此時,選中該表,設計表,選擇要輸入中文字符的列,修改其“字符集”和“排序規則”為截圖所示,即可! 其他方式的錯誤,可參考 https://blog.cs

字元與字串的'\0', '0', 0;strlen()函式求字串長度計算方法(sizeof()驗證)

如下字元陣列or字串,用strlen函式求長度各是多少? char * p = “abc” 與 char a[] = "abc"兩種形式並不同; char * str1 = "abc"; char * str2 = "ab\

MySQL字串的數字、英文字元、漢字提取

原文:https://blog.csdn.net/oyezhou/article/details/81665643 另外一篇類似的:https://blog.csdn.net/haijiege/article/details/79460236 建立一個Num_char_

php 字串是否包含指定字串的多種方法

編寫程式的時候,經常要處理字串,最基本就是字串的查詢,在php檢測字串中是否包含指定字串可以使用正則,如果你對正則不瞭解,那麼有幾個函式可以為您提供方便。 1. strstr strstr() 函式搜尋一個字串在另一個字串中的第一次出現。 該函式返回字串的其餘部分(從匹配點)。如果未找到所搜

編寫一個方法,計算一個字串,第一個不重複的字元在當前字串的索引。即是這個字串唯一一個存在的字元第一個出現的位置

1.編寫一個方法,計算一個字串中,第一個不重複的字元在當前字串中的索引。即是這個字串唯一一個存在的字元第一個出現的位置 比如saaaaafss 輸出f saaaaaf 輸出 s public class S1 { public static void main(String args

【JEECG示例文件】使用Kettle從mysql向oracle抽取資料

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

利用python 將 mysql 資料進行抽取並清理成標準格式後 存入MSSql 資料

from pymongo import MongoClientfrom pymysql import connectimport pymssqlfrom datetime import datetime, timedeltaimport time Nagios 資料庫的IP 地址 NagiosDB_IP

Python常用操作字串的函式與方法總結

本文轉載自:https://www.jb51.net/article/79196.htm Python中常用操作字串的函式與方法總結 這篇文章主要介紹了Python中常用操作字串的函式與方法總結,包括字串的格式化輸出與拼接等基礎知識,需要的朋友可以參考下 例如這樣一個字串 Python,

python字串以及內建方法

字串的操作方法 +  字串連線操作 str1 = "大金鍊子" str2 = "小手錶" str3 = str1 + str2 print(str3) *  字串複製操作 str1 = "大金鍊子" str2 = "小手錶" str3 = str1*3