常用的字符串函數
函數 | 說明 |
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,...)
返回連接參數產生的字符串,一個或多個待拼接的內容,任意一個為null則返回值為null
sql: SELECT CONCAT('現在的時間:',NOW())
結果: 現在的時間:2019-07-10 21:15:15
1.2 CONCAT_WS(x,str1,str2,...)
返回多個字符串之后的字符串,每個字符串之間有一個x
sql: SELECT CONCAT_WS('*','asdf','dgfg','dfdfgh')
結果: asdf*dgfg*dfdfgh
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