MySQL函式學習(一)-----字串函式

hmpn發表於2022-01-23

一、MySQL 字串函式

\ 函 數 名 稱 作 用 完 成
1 LENGTH 計算字串位元組長度
2 CONCAT 合併字串函式,返回結果為連線引數產生的字串,引數可以是一個或多個
3 INSERT 替換字串函式
4 LOWER 將字串中的字母轉換為小寫
4 UPPER 將字串中的字母轉換為大寫
5 LEFT 從左側字擷取符串,返回字串左邊的若干個字元
5 RIGHT 從右側字擷取符串,返回字串右邊的若干個字元
6 TRIM 刪除字串左右兩側的空格
7 REPLACE 字串替換函式,返回替換後的新字串
8 SUBSTRING 擷取字串,返回從指定位置開始的指定長度的字元換
9 REVERSE 字串反轉(逆序)函式,返回與原始字串順序相反的字串

1. CHAR_LENGTH、CHARACTER_LENGTH、LENGTH、OCTET_LENGTH 、BIT_LENGTH、~~UNCOMPRESSED_LENGTH~~

以上函式唯一引數都為欄位名字串

1_length.jpg


  • CHAR_LENGTH等同於CHARACTER_LENGTH:用於計算字串的字元長度
  • LENGTH等同於OCTET_LENGTH: 用於計算字串的位元組長度
  • BIT_LENGTH:用於計算字串位數

在第一行中,“三體第二部 ”中一個漢字佔三個位元組,表一個字元,空格或數字字母也算一個字元,所以字元長度為6;
但空格或數字字母只佔一個位元組,所以位元組長度為16(15 + 1);
位數沒什麼好說的,這裡採用的是utf8,乘8;


2. CONCAT、CONCAT_WS、GROUP_CONCAT

2_concat與concat_ws.jpg


  • CONCATCONCAT_WS都能拼接多個字串。
  • CONCATCONCAT_WS的區別主要在於:
    • concat只是單純的將各字串連線出來,而concat_ws指定了唯一分隔符(第一個引數)
    • 在mysql中,concat拼接陣列中若有null值,則拼接字串結果為null; 而concat_ws只會將null值的字串忽略,最終拼接字元結果不會為null(除非拼接的全為null)。所以一般情況下能不使用concat就不使用concat,避免某欄位值為null導致最終值為null

2_group_concat.jpg


  • GROUP_CONCAT 要搭配GROUP BY來使用,將某一分組的欄位的所有拼接一起,可排序,可使用separator指定分隔符。 與concat_ws一樣,若某欄位為null,最終結果只會忽略該欄位,不會為null。

3. INSERT

INSERT(str,pos,len,newstr):
str表處理的初始字串,pos表從str的第幾位開始插入,len表插入的長度,newstr表插入的字串。

3_INSERT.jpg


  • 可以理解為該函式為,把str的第pos位~len為替換為newstr
  • 當pos超過str長度時,會直接返回str作為結果。
  • 當len超過str長度時,會將pos位往後的替換為newstr

LAST_INSERT_ID(): 獲取最後插入的ID值


4. LOWER、UPPER

字串大小寫的相互轉換

4_LOWER與UPPER.jpg


5. LEFT、RIGHT

取字串從最左/右的若干各字元

5_LEFT與RIGHT.jpg


6. TRIM

TRIM(BOTH FROM str) 等同於 TRIM(str)::刪除左右倆側空格
TRIM(LEADING FROM str) 等同於 LTRIM(str): 刪除左側空格
TRIM(TRAILING FROM str) 等同於 RTRIM(str): 刪除右側空格


6_TRIM.jpg


7. REPLACE

REPLACE(str,from_str,to_str): 將str字串中的from_str字串替換為to_str

7_REPLACE.jpg


  • from_str和to_str不能為null,否則直接返回結果值為null。

8. SUBSTRING

SUBSTRING(str,pos)等同於SUBSTRING(str from pos): 取str第pos個字元後的字串
SUBSTRING(str,pos,len)等同於SUBSTRING(str from pos for len): 取str第pos個字元後長度為len的字串

8_SUBSTRING.jpg


  • pos為正數時表從第pos個字元開始取
  • pos為負數時表從倒數第pos個字元開始取

SUBSTRING_INDEX(str,delim,count): delim為分隔符,取str第count個分隔符前字串

8_SUBSTRING_INDEX.jpg


9. REVERSE

REVERSE(str):反轉字串

9_REVERSE.jpg


相關文章