字符串函数

ascii(string str)

功能:返回字符串第一个字符串对应的ascii 码

返回类型:int类型

concat(string a, string b…​)

功能:将多个字符串连接起来

返回类型:string类型

使用说明:concat()和concat_ws()都是将一行中的多个列合成1个新的列,group_concat()是聚合函数,将不同行的结果合成1个新的列

concat_ws(string sep, string a, string b…​)

功能:将第二个参数以及后面的参数连接起来,连接符为第一个参数。

返回类型:string类型

举例:

  1. mysql> select concat_ws('a', 'b', 'c', 'd');
  2. +-------------------------------+
  3. | concat_ws('a', 'b', 'c', 'd') |
  4. +-------------------------------+
  5. | bacad |
  6. +-------------------------------+
  7. 1 row in set (0.01 sec)

find_in_set(string str, string strList)

功能:返回strlist中出现第一次str的位置(从1开始计数)。strList用逗号分隔多个字符串。如果在strList中没有找到str,则返回0。

返回类型:int类型

举例:

  1. mysql> select find_in_set("beijing", "tianji,beijing,shanghai");
  2. +---------------------------------------------------+
  3. | find_in_set('beijing', 'tianji,beijing,shanghai') |
  4. +---------------------------------------------------+
  5. | 2 |
  6. +---------------------------------------------------+
  7. 1 row in set (0.00 sec)

group_concat(string s [, string sep])

功能:该函数是类似于sum()的聚合函数,group_concat将结果集中的多行结果连接成一个字符串。第二个参数为字符串之间的连接符号,该参数可以省略。该函数通常需要和group by 语句一起使用。

返回类型:string类型

instr(string str, string substr)

功能:返回substr在str中第一次出现的位置(从1开始计数)。如果substr不在str中出现,则返回0。

返回类型:int类型

举例:

  1. mysql> select instr('foo bar bletch', 'b');
  2. +------------------------------+
  3. | instr('foo bar bletch', 'b') |
  4. +------------------------------+
  5. | 5 |
  6. +------------------------------+
  7. 1 row in set (0.01 sec)
  1. mysql> select instr('foo bar bletch', 'z');
  2. +------------------------------+
  3. | instr('foo bar bletch', 'z') |
  4. +------------------------------+
  5. | 0 |
  6. +------------------------------+
  7. 1 row in set (0.01 sec)

length(string a)

功能:返回字符串的长度

返回类型:int类型

locate(string substr, string str[, int pos])

功能:返回substr在str中出现的位置(从1开始计数)。如果指定第3个参数,则从str以pos下标开始的字符串处开始查找substr出现的位置。

返回类型:int类型

举例:

  1. mysql> select locate('bj', 'where is bj', 10);
  2. +---------------------------------+
  3. | locate('bj', 'where is bj', 10) |
  4. +---------------------------------+
  5. | 10 |
  6. +---------------------------------+
  7. 1 row in set (0.01 sec)
  1. mysql> select locate('bj', 'where is bj', 11);
  2. +---------------------------------+
  3. | locate('bj', 'where is bj', 11) |
  4. +---------------------------------+
  5. | 0 |
  6. +---------------------------------+
  7. 1 row in set (0.01 sec)

lower(string a)

lcase(string a)

功能:将参数中所有的字符串都转换成小写

返回类型:string类型

lpad(string str, int len, string pad)

功能:返回str中长度为len(从首字母开始算起)的字符串。如果len大于str的长度,则在str的前面不断补充pad字符,直到该字符串的长度达到len为止。如果len小于str的长度,该函数相当于截断str字符串,只返回长度为len的字符串。

返回类型:string类型

举例:

  1. mysql> select lpad("hello", 10, 'xy');
  2. +-------------------------+
  3. | lpad('hello', 10, 'xy') |
  4. +-------------------------+
  5. | xyxyxhello |
  6. +-------------------------+
  7. 1 row in set (0.01 sec)

ltrim(string a)

功能:将参数中从开始部分连续出现的空格去掉。

返回类型:string类型

regexp_extract(string subject, string pattern, int index)

功能:字符串正则匹配。index为0返回整个匹配的字符串,index为1,2,……,返回第一,第二,……部分。

返回类型:string类型

举例:

  1. mysql> select regexp_extract('AbcdBCdefGHI','.*?([[:lower:]]+)',1);
  2. +--------------------------------------------------------+
  3. | regexp_extract('AbcdBCdefGHI', '.*?([[:lower:]]+)', 1) |
  4. +--------------------------------------------------------+
  5. | def |
  6. +--------------------------------------------------------+
  7. 1 row in set (0.01 sec)
  1. mysql> select regexp_extract('AbcdBCdefGHI','.*?([[:lower:]]+).*?',1);
  2. +-----------------------------------------------------------+
  3. | regexp_extract('AbcdBCdefGHI', '.*?([[:lower:]]+).*?', 1) |
  4. +-----------------------------------------------------------+
  5. | bcd |
  6. +-----------------------------------------------------------+
  7. 1 row in set (0.01 sec)

regexp_replace(string initial, string pattern, string replacement)

功能:用replacement替换initial字符串中匹配pattern的部分。

返回类型:string类型

举例:

  1. mysql> select regexp_replace('aaabbbaaa','b+','xyz');
  2. +------------------------------------------+
  3. | regexp_replace('aaabbbaaa', 'b+', 'xyz') |
  4. +------------------------------------------+
  5. | aaaxyzaaa |
  6. +------------------------------------------+
  7. 1 row in set (0.01 sec)
  1. mysql> select regexp_replace('aaabbbaaa','(b+)','<\\1>');
  2. +---------------------------------------------+
  3. | regexp_replace('aaabbbaaa', '(b+)', '<\1>') |
  4. +---------------------------------------------+
  5. | aaa<bbb>aaa |
  6. +---------------------------------------------+
  7. 1 row in set (0.01 sec)
  1. mysql> select regexp_replace('123-456-789','[^[:digit:]]','');
  2. +---------------------------------------------------+
  3. | regexp_replace('123-456-789', '[^[:digit:]]', '') |
  4. +---------------------------------------------------+
  5. | 123456789 |
  6. +---------------------------------------------------+
  7. 1 row in set (0.01 sec)

repeat(string str, int n)

功能:返回字符串str重复n次的结果

返回类型:string类型

举例:

  1. mysql> select repeat("abc", 3);
  2. +------------------+
  3. | repeat('abc', 3) |
  4. +------------------+
  5. | abcabcabc |
  6. +------------------+
  7. 1 row in set (0.01 sec)

reverse(string a)

功能:将字符串反转

返回类型:string类型

rpad(string str, int len, string pad)

功能:返回str中长度为len(从首字母开始算起)的字符串。如果len大于str的长度,则在str 的后面不断补充pad字符,直到该字符串的长度达到len 为止。如果len小于str的长度,该函数相当于截断str字符串,只返回长度为len的字符串。

返回类型:string类型

举例:

  1. mysql> select rpad("hello", 10, 'xy');
  2. +-------------------------+
  3. | rpad('hello', 10, 'xy') |
  4. +-------------------------+
  5. | helloxyxyx |
  6. +-------------------------+
  7. 1 row in set (0.00 sec)

rtrim(string a)

功能:将参数中从右侧部分部分连续出现的空格去掉。

返回类型:string类型

space(int n)

功能:返回n个空格的字符串

返回类型:string类型

strleft(string a, int num_chars)

功能:返回字符串中最左边的num_chars个字符。

返回类型:string类型

strright(string a, int num_chars)

功能:返回字符串中最右边的num_chars个字符。

返回类型:string类型

substr(string a, int start [, int len])

substring(string a, int start[, int len])

功能:求子串函数,返回第一个参数描述的字符串中从start开始长度为len的部分字符串。首字母的下标为1。

返回类型:string类型

trim(string a)

功能:将参数中右侧部分连续出现的空格和左侧部分连续出现的空格都去掉。该函数的效果和同时使用ltrim()和rtrim()的效果是一样的。

返回类型:string类型

upper(string a)

ucase(string a)

功能:将字符串所有字母都转换成大写。

返回类型:string类型