1. 程式人生 > >MySQL字串擷取、取長度、替換

MySQL字串擷取、取長度、替換

1、MySQL擷取字串

MySQL擷取字串函式有很多:substring(),substring_index(),left(), right(), mid(), substr()。其中,substring() 的功能非常強大,平時只用這個就夠了,substring_index()是用指定的字元在字串中第n次出現的位置,之前或之後的字串。

substring()

substring(字串, 位置); substring(字串, 位置, 長度)

  • 從字串的第 5 個字元位置開始取(包括第5個字元),直到結束。
    select substring(‘www.csdn.com’, 5);
    csdn.com

  • 從字串的第 5個字元位置開始取,只取4個字元。
    select substring(‘www.csdn.com’, 4, 4);
    csdn

  • 從字串的倒數第3 個字元位置開始取(包括倒數第3個字元),直到結束。
    select substring(‘www.csdn.com’, -3);
    com

  • 從字串的倒數第 3 個字元位置開始取,只取 2 個字元。
    select substring(‘www.csdn.com’, -3, 2);
    co

substring_index()

substring_index(字串,指定字元,第n次位置),如果指定字元在字串中搜索不到,則返回整個字串

  • 擷取第二個 ‘.’ 之前的所有字元。
    select substring_index(‘
    www.csdn.com
    ’ , ‘.’ , 2);
    www.csdn
  • 擷取第2個 ‘.’ (倒數)之後的所有字元。
    select substring_index(‘www.csdn.com’ , ‘.’ , -2);
    csdn.com

2、MySQL取字串長度

常用的取長度函式有char_length()、length()、bit_length()
char_length() 返回字元個數,一箇中文或英文字元返回都是1
length() 字元在當前編碼下儲存,所佔的位元組數
bit_length() 字元在當前編碼下儲存,所佔的bit,也就是length*8
比較常用的就是char_length()

  • SELECT char_length(‘你吃了麼?’);
    5
  • SELECT char_length(‘eat?’);
    4

3、MySQL替換字串

replace(字串,要替換的字元,新字元)

  • SELECT replace(‘你吃了麼?’,‘吃’,‘喝’);
  • 你喝了麼?