經常使用的字符串函數sql
函數 | 說明 |
CONCAT(str1,str2,...) | 返回鏈接參數產生的字符串,一個或多個待拼接的內容,任意一個爲null則返回值爲null |
CONCAT_WS(x,str1,str2,...) | 返回多個字符串拼接以後的字符串,每一個字符串之間有一個x |
SUBSTRING(str,index,len),MID(str,index,len) | 兩個函數做用相同,從字符串str中返回一個 第index個字符開始,長度爲len的字符串。 |
LEFT(str,n),RIGHT(str,n) | 前者返回字符串str從左邊開始的n個字符,後者返回字符串str從最右邊開始的n個字符 |
INSERT(str1,index,len,str2) | 返回字符串str1,其子字符串起始於位置index,被字符串str2取代len個字符 |
REPLACE(str,str1,str2) | 返回一個字符串,用字符串str2替代字符串str中全部的字符串str1 |
LOCATE(str1,str),POSITION(str1 IN str),INSTR(str,str1) | 三個函數做用相同,返回字符串str1在字符串str中的開始位置(從第幾個字符開始) |
FIELD(str,s1,s2,......) | 返回第一個與字符串str匹配的字符串的位置 |
1.字符串的拼接函數
1.1 CONCAT(str1,str2,...)spa
返回鏈接參數產生的字符串,一個或多個待拼接的內容,任意一個爲null則返回值爲null3d
sql: SELECT CONCAT('如今的時間:',NOW())字符串
結果: 如今的時間:2019-07-10 21:15:15table
1.2 CONCAT_WS(x,str1,str2,...)查詢
返回多個字符串以後的字符串,每一個字符串之間有一個x tab
sql: SELECT CONCAT_WS('*','asdf','dgfg','dfdfgh')時間
結果: asdf*dgfg*dfdfghco
2. 字符串的截取
2.1 SUBSTRING(str,index,len) MID(str,index,len)
兩個函數做用相同,從字符串str中返回第index個字符開始,長度爲len的字符串
sql: SELECT SUBSTRING('123456789',4,3)
結果: 456
sql: SELECT MID('123456789',3,2)
結果: 34
2.2 LEFT(str,n) RIGHT(str,n)
前者返回字符串str從最左邊開始的第n個字符,後者返回字符串str從最右邊開始的第n個字符
sql: SELECT LEFT('123456789',4)
結果: 1234
sql: SELECT RIGHT('123456789',4)
結果: 6789
3. 字符串的替換
3.1 INSERT(str1,index,len,str2)
返回字符串str1,其子字符串起始於位置index,被字符串str2取代len個字符
sql: SELECT INSERT('abcdefg',2,3,'#')
結果: a#efg
3.2 REPLACE(str,str1,str2)
返回一個字符串,用字符串str2替代字符串str中的全部的字符串str1
sql: SELECT REPLACE('123456789','123','#')
結果: #456789
4. 字符串的查詢位置
4.1 LOCATE(str1,str) POSITION(str1 in str) INSTR(str,str1)
三個函數做用相同,返回自字符串str1在字符串str中的開始位置(從第幾個字符開始)
sql: SELECT LOCATE('c','abcdefg')
結果: 3
sql: SELECT POSITION('c' IN 'abcdefg')
結果: 3
sql: SELECT INSTR('abcdefg','c')
結果: 3
4.2 FIELD(str,str1,str2,...)
返回第一個與字符串str匹配的字符串的位置
sql: SELECT FIELD('c','b','c','d','e')
結果: 2