在sql中,可以使用SUBSTRING語句截取某字段的一部分,語法格式為“SUBSTRING(字符串,開始位置,截取長度)”。SQL中的substring函數是用來抓出一個欄位資料中的其中一部分
本教程操作環境:windows7系統、mysql8版本、Dell G3電腦。
SUBSTRING?(?expression,?start,?Length?)
參數?
expression?
字符串、二進制字符串、文本、圖像、列或包含列的表達式。請勿使用包含聚合函數的表達式。?
start?
整數或可以隱式轉換為 int 的表達式,指定子字符串的開始位置,索引是從1開始。?
length?
整數或可以隱式轉換為 int 的表達式,指定子字符串的長度。經測試,暫且發現只能是非負數。
返回值
1、如果 expression 是一種支持的二進制數據類型,則返回二進制數據,這種情況我們暫且不討論。
2、如果 expression 是一種支持的字符數據類型,則返回字符數據。
(1)如果 start的索引是從1開始,則從表達式的第一個字符開始進行字符串截取,從2開始就從表達式的第二個字符開始截取,以此類推。
例如:
?select?SUBSTRING('abcde',1,2)?返回結果?ab ?select?SUBSTRING('abcde',2,3)?返回結果?bcd ?select?SUBSTRING('abcde',1,0)?返回結果為空 ?select?SUBSTRING('abcde',0,8)?返回結果為abcde,注意后面沒有空格了。
(2)?如果start的索引是從小于1(0或負數)開始,則返回長度等于從1開始,截取長度為 length – ((start – 1)的絕對值), 如果這個差為負數就返回空。
例如:下面的 || 表示絕對值計算
select?SUBSTRING('abcde',0,2)?返回結果為?a?,?計算公式為SUBSTRING(1,2-|2-1|)? ?select?SUBSTRING('abcde',0,-1)?返回錯誤提示“傳遞到?substring?函數的長度參數無效” ?select?SUBSTRING('abcde',-1,2)?返回結果為空,?計算公式為SUBSTRING(1,2-|-1-1|)? ?select?SUBSTRING('abcde',-5,3)?返回結果為空,?計算公式為SUBSTRING(1,3-|-5-1|)? ?select?SUBSTRING('abcde',-1,4)?返回結果為ab,?計算公式為SUBSTRING(1,4-|-1-1|)? ?select?SUBSTRING('abcde',-2,8)?返回結果為abcde,?計算公式為SUBSTRING(1,8-|-2-1|)
相關學習推薦:mysql教程(視頻)
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END