注:sql的移植性比較強,函數的移植性不強,一般為資料庫軟體特有,例如mysql有mysql的函數,oracle有oracle的函數。
1、concat連接配接字元串:
從上圖中可以看出,直接使用select concat就可以連接配接任意兩個以上的字元串,同時也可以用來連接配接查詢結果,一般情況中也是會用來連接配接查詢結果。需要注意的是,如果連接配接的内容有null存在的話,那麼結果就隻會是null。
2、concat_ws使用分隔符連接配接字元串:
在上邊的文法中,第一個字元傳代表指定的連接配接格式,其他的代表需要連接配接的字元串内容。與concat還有所不同的是,這裡如果出現null,null會被忽略掉。
3、strcmp比較字元串的大小:
如上圖可以看到,當第一個字元串小于第二個時傳回-1,反之傳回1,如果相等則傳回0.
4、length和char_length來擷取字元串的長度:
從圖中可以看出length計算的是位元組數長度,而char_length計算的是字元數長度。
5、使用upper或ucase和lower或lcase來實作對英文字元的大小寫轉換:
6、find_in_set查找字元串的位置:
如圖可以看到,需要查找的字元串必須滿足一定的格式,即需要逗号隔開,是以這裡不能了解為子字元串。
7、使用field查找字元串的位置:
注意這裡和上一個的差別,一個是在同一個字元串中用逗号隔開,而這裡是幾個字元串。
8、locate、position和instr查找字元串的位置:
這裡三個的作用基本一樣,隻是使用的文法略有不同,position要和in結合使用,locate和instr的參數位置相反,都是傳回一個字元串中子字元串的位置。
9、使用elt傳回指定位置的字元串,文法格式和field類似:
10、從現有字元串中截取子字元串:
其中left指從最左開始截取指定長度的字元串,right是從右開始;substring和mid的第一個數字參數指開始截取的位置,第二個數字參數指截取的長度。
11、去除字元串的空格:
ltrim去掉左邊的空格,rtrim去掉右邊的空格,trim去掉前後的空格,隻是這裡都不太好看出來。
12、insert字元串替換:
如圖可以看出,第一個參數為原始字元串,第二個為需要替換的其實位置,第三個表示需要替換的長度,第四個表示用來替換原字元串的新字元串;需要注意的是,當指定的需要替換長度超過剩餘長度時會替換所有,當指定的位置剛好是比字元串長度大一時,會把新字元串加到末尾,當指定的位置比字元串長度大2以上時,原字元串不變。
13、replace替換字元串:
與上邊不同的是,這裡不是指定位置和長度,而是直接指定一個字元串,如果這個字元串不存在原字元串中,則替換失敗。