字符串函数
#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,...)函数,但是每个字符串直接要加上x
SELECT 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
字符串函数 | 说明 |
---|---|
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。 |