字符串函数
#CHAR_LENGTH(s) 返回字符串s的字符数SELECT CHAR_LENGTH('你好123') -- 5#LENGTH(s) 返回字符串s的长度SELECT LENGTH('你好123') -- 9#CONCAT(s1,s2,...) 将字符串s1,s2等多个字符串合并为一个字符串SELECT CONCAT('12','34') -- 1234#CONCAT_WS(x,s1,s2,...) 同CONCAT(s1,s2,...)函数,但是每个字符串直接要加上xSELECT CONCAT_WS('@','12','34') -- 12@34INSERT(s1,x,len,s2) 将字符串s2替换s1的x位置开始长度为len的字符串SELECT INSERT('12345',1,3,'abc') -- abc45#UPPER(s),UCAASE(S) 将字符串s的所有字母变成大写字母SELECT UPPER('abc') -- ABC#LOWER(s),LCASE(s) 将字符串s的所有字母变成小写字母SELECT LOWER('ABC') -- abc#LEFT(s,n) 返回字符串s的前n个字符SELECT LEFT('abcde',2) -- ab#RIGHT(s,n) 返回字符串s的后n个字符SELECT RIGHT('abcde',2) -- de#LPAD(s1,len,s2) 字符串s2来填充s1的开始处,使字符串长度达到lenSELECT LPAD('abc',5,'xx') -- xxabc#RPAD(s1,len,s2) 字符串s2来填充s1的结尾处,使字符串的长度达到lenSELECT RPAD('abc',5,'xx') -- abcxxLTRIM(s) 去掉字符串s开始处的空格RTRIM(s) 去掉字符串s结尾处的空格TRIM(s) 去掉字符串s开始和结尾处的空格TRIM(s1 FROM s) 去掉字符串s中开始处和结尾处的字符串s1SELECT TRIM('@' FROM '@@abc@@') -- abcREPEAT(s,n) 将字符串s重复n次SELECT REPEAT('ab',3) -- abababSPACE(n) 返回n个空格#REPLACE(s,s1,s2) 将字符串s2替代字符串s中的字符串s1SELECT REPLACE('abc','a','x') --xbcSTRCMP(s1,s2) 比较字符串s1和s2SUBSTRING(s,n,len) 获取从字符串s中的第n个位置开始长度为len的字符串MID(s,n,len) 同SUBSTRING(s,n,len)#LOCATE(s1,s),POSITION(s1 IN s) 从字符串s中获取s1的开始位置SELECT LOCATE('b', 'abc') -- 2#INSTR(s,s1) 从字符串s中获取s1的开始位置SELECT INSTR('abc','b') -- 2
| 字符串函数 | 说明 | 
|---|---|
| CHAR_LENGTH(s) | 返回字符串s的字符数SELECT CHAR_LENGTH('你好123') -- 5 | 
| LENGTH(s) | 返回字符串s的长度SELECT LENGTH('你好123') -- 9 | 
| CONCAT(s1,s2,…) | 将字符串s1,s2等多个字符串合并为一个字符串SELECT CONCAT('12','34') -- 1234 | 
| CONCAT_WS(x,s1,s2,…) | 同CONCAT(s1,s2,…)函数,但是每个字符串直接要加上xSELECT CONCAT_WS('@','12','34') -- 12@34 | 
| INSERT(s1,x,len,s2) | 将字符串s2替换s1的x位置开始长度为len的字符串 SELECT INSERT(‘12345’,1,3,’abc’) — abc45  | 
| UPPER(s),UCAASE(S) | 将字符串s的所有字母变成大写字母 SELECT UPPER(‘abc’) — ABC  | 
| LOWER(s),LCASE(s) | 将字符串s的所有字母变成小写字母 SELECT LOWER(‘ABC’) — abc  | 
| LEFT(s,n) | 返回字符串s的前n个字符 SELECT LEFT(‘abcde’,2) — ab  | 
| RIGHT(s,n) | 返回字符串s的后n个字符 SELECT RIGHT(‘abcde’,2) — de  | 
| LPAD(s1,len,s2) | 字符串s2来填充s1的开始处,使字符串长度达到len SELECT LPAD(‘abc’,5,’xx’) — xxabc  | 
| RPAD(s1,len,s2) | 字符串s2来填充s1的结尾处,使字符串的长度达到len SELECT RPAD(‘abc’,5,’xx’) — abcxx  | 
| LTRIM(s) | 去掉字符串s开始处的空格 | 
| RTRIM(s) | 去掉字符串s结尾处的空格 | 
| TRIM(s) | 去掉字符串s开始和结尾处的空格 | 
| TRIM(s1 FROM s) | 去掉字符串s中开始处和结尾处的字符串s1 SELECT TRIM(‘@’ FROM ‘@@abc@@’) — abc  | 
| REPEAT(s,n) | 将字符串s重复n次 SELECT REPEAT(‘ab’,3) — ababab  | 
| SPACE(n) | 返回n个空格 | 
| REPLACE(s,s1,s2) | 将字符串s2替代字符串s中的字符串s1 SELECT REPLACE(‘abc’,’a’,’x’) —xbc  | 
| STRCMP(s1,s2) | 比较字符串s1和s2 | 
| SUBSTRING(s,n,len) | 获取从字符串s中的第n个位置开始长度为len的字符串 | 
| MID(s,n,len) | 同SUBSTRING(s,n,len) | 
| LOCATE(s1,s),POSITION(s1 IN s) | 从字符串s中获取s1的开始位置 SELECT LOCATE(‘b’, ‘abc’) — 2  | 
| INSTR(s,s1) | 从字符串s中获取s1的开始位置 SELECT INSTR(‘abc’,’b’) — 2  | 
| REVERSE(s) | 将字符串s的顺序反过来 SELECT REVERSE(‘abc’) — cba  | 
| ELT(n,s1,s2,…) | 返回第n个字符串 SELECT ELT(2,’a’,’b’,’c’) — b  | 
| EXPORT_SET(x,s1,s2) | 返回一个字符串,在这里对于在“bits”中设定每一位,你得到一个“on”字符串,并且对于每个复位(reset)的位,你得到一个 “off”字符串。每个字符串用“separator”分隔(缺省“,”),并且只有“bits”的“number_of_bits” (缺省64)位被使用。 SELECT EXPORT_SET(5,’Y’,’N’,’,’,4) — Y,N,Y,N  | 
| FIELD(s,s1,s2…) | 返回第一个与字符串s匹配的字符串位置 SELECT FIELD(‘c’,’a’,’b’,’c’) — 3  | 
| FIND_IN_SET(s1,s2) | 返回在字符串s2中与s1匹配的字符串的位置 | 
| MAKE_SET(x,s1,s2) | 返回一个集合 (包含由 “,” 字符分隔的子串组成的一个 字符串),由相应的位在 bits集合中的的字符串组成。str1对应于位0,str2对 应位1,等等。SELECT MAKE_SET(1|4,’a’,’b’,’c’); — a,c  | 
| SUBSTRING_INDEX | 返回从字符串str的第count个出现的分隔符delim之后的子串。 如果count是正数,返回第count个字符左边的字符串。 如果count是负数,返回第(count的绝对值(从右边数))个字符右边的字符串。 SELECT SUBSTRING_INDEX(‘ab’,’‘,1) — a SELECT SUBSTRING_INDEX(‘ab’,’‘,-1) — b SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(‘abcde’,’‘,3),’‘,-1) — c  | 
| LOAD_FILE(file_name) | 读入文件并且作为一个字符串返回文件内容。文件必须在服务器上,你必须指定到文件的完整路径名,而且你必须有file权 限。文件必须所有内容都是可读的并且小于max_allowed_packet。 如果文件不存在或由于上面原因之一不能被读出,函数返回NULL。 | 
